kyle c76455e
From 8d2f6746f7f82e1aee2dc40a937b5954cfc73414 Mon Sep 17 00:00:00 2001
kyle 915df7f
From: Kyle McMartin <kyle@mcmartin.ca>
kyle 915df7f
Date: Sun, 17 Oct 2010 15:55:32 -0400
kyle 915df7f
Subject: [PATCH] dmar: disable if ricoh multifunction detected
kyle 915df7f
kyle 915df7f
---
kyle 915df7f
 drivers/pci/intel-iommu.c |   10 ++++++++++
kyle 915df7f
 1 files changed, 10 insertions(+), 0 deletions(-)
kyle 915df7f
kyle 915df7f
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
kyle c76455e
index 8e499e8..076c5de 100644
kyle 915df7f
--- a/drivers/pci/intel-iommu.c
kyle 915df7f
+++ b/drivers/pci/intel-iommu.c
Kyle McMartin e38a760
@@ -3755,6 +3755,18 @@ static void __devinit quirk_iommu_rwbf(struct pci_dev *dev)
kyle c76455e
 
kyle c76455e
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);
kyle 915df7f
 
kyle 915df7f
+/* https://bugzilla.redhat.com/show_bug.cgi?id=605888 */
kyle 915df7f
+static void __devinit quirk_ricoh_multifunction(struct pci_dev *dev)
kyle 915df7f
+{
Kyle McMartin e38a760
+	printk(KERN_INFO "intel_iommu: broken Ricoh device %04X detected, disabling...\n",
Kyle McMartin e38a760
+		dev->device);
kyle 915df7f
+	dmar_disabled = 1;
kyle 915df7f
+}
kyle 915df7f
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe822, quirk_ricoh_multifunction);
kyle 915df7f
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe230, quirk_ricoh_multifunction);
kyle 915df7f
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe832, quirk_ricoh_multifunction);
kyle 915df7f
+DECLARE_PCI_FIXUP_HEADER(0x1180, 0xe476, quirk_ricoh_multifunction);
kyle 915df7f
+
kyle 915df7f
 /* On Tylersburg chipsets, some BIOSes have been known to enable the
kyle 915df7f
    ISOCH DMAR unit for the Azalia sound device, but not give it any
kyle 915df7f
    TLB entries, which causes it to deadlock. Check for that.  We do
kyle 915df7f
-- 
kyle 915df7f
1.7.3.1
kyle 915df7f