summaryrefslogtreecommitdiff
path: root/linux-core
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2008-06-16 15:15:02 -0700
committerEric Anholt <eric@anholt.net>2008-06-16 15:15:02 -0700
commite7424e4580159b0ac3e232674dff5c862e851dff (patch)
tree54e0357c1283bef1187d7d5a06511d8bcda5d094 /linux-core
parentc847271179da382af52a6874e2edec586b88af75 (diff)
[intel] Quirk away MSI support on 945G/GM.
The PCI caps register reports MSI support even though it isn't really there.
Diffstat (limited to 'linux-core')
-rw-r--r--linux-core/i915_drv.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/linux-core/i915_drv.c b/linux-core/i915_drv.c
index 012ca822..e399f374 100644
--- a/linux-core/i915_drv.c
+++ b/linux-core/i915_drv.c
@@ -628,7 +628,16 @@ static int probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
int ret;
- (void) pci_enable_msi(pdev);
+ /* On the 945G/GM, the chipset reports the MSI capability on the
+ * integrated graphics even though the support isn't actually there
+ * according to the published specs. It doesn't appear to function
+ * correctly in testing on 945G.
+ * This may be a side effect of MSI having been made available for PEG
+ * and the registers being closely associated.
+ */
+ if (pdev->device != 0x2772 && pdev->device != 0x27A2)
+ (void )pci_enable_msi(pdev);
+
ret = drm_get_dev(pdev, ent, &driver);
if (ret && pdev->msi_enabled)
pci_disable_msi(pdev);