summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-05-22 07:33:49 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-05-22 07:33:49 -0700
commit1e787d139f89eb5f7080035625649ce4ce290037 (patch)
tree20dc621d9f73ff0944b89b7891c0e4006efa46a6 /arch
parent66a26a8fa7694cdfa418d1527416c4ea079309f4 (diff)
parent6eb0ac03899a1363ba176abe0830a9e6698c0503 (diff)
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: powerpc/maple: Add a quirk to disable MSI for IPR on Bimini
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/platforms/maple/pci.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c
index 301855263b8..04296ffff8b 100644
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
@@ -592,3 +592,17 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel)
}
return irq;
}
+
+static void __devinit quirk_ipr_msi(struct pci_dev *dev)
+{
+ /* Something prevents MSIs from the IPR from working on Bimini,
+ * and the driver has no smarts to recover. So disable MSI
+ * on it for now. */
+
+ if (machine_is(maple)) {
+ dev->no_msi = 1;
+ dev_info(&dev->dev, "Quirk disabled MSI\n");
+ }
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_OBSIDIAN,
+ quirk_ipr_msi);