|
@@ -4234,6 +4234,21 @@ static struct iommu_ops intel_iommu_ops = {
|
|
|
.pgsize_bitmap = INTEL_IOMMU_PGSIZES,
|
|
|
};
|
|
|
|
|
|
+static void quirk_iommu_g4x_gfx(struct pci_dev *dev)
|
|
|
+{
|
|
|
+ /* G4x/GM45 integrated gfx dmar support is totally busted. */
|
|
|
+ printk(KERN_INFO "DMAR: Disabling IOMMU for graphics on this chipset\n");
|
|
|
+ dmar_map_gfx = 0;
|
|
|
+}
|
|
|
+
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_g4x_gfx);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_g4x_gfx);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e10, quirk_iommu_g4x_gfx);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e20, quirk_iommu_g4x_gfx);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e30, quirk_iommu_g4x_gfx);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e40, quirk_iommu_g4x_gfx);
|
|
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e90, quirk_iommu_g4x_gfx);
|
|
|
+
|
|
|
static void quirk_iommu_rwbf(struct pci_dev *dev)
|
|
|
{
|
|
|
/*
|
|
@@ -4242,12 +4257,6 @@ static void quirk_iommu_rwbf(struct pci_dev *dev)
|
|
|
*/
|
|
|
printk(KERN_INFO "DMAR: Forcing write-buffer flush capability\n");
|
|
|
rwbf_quirk = 1;
|
|
|
-
|
|
|
- /* https://bugzilla.redhat.com/show_bug.cgi?id=538163 */
|
|
|
- if (dev->revision == 0x07) {
|
|
|
- printk(KERN_INFO "DMAR: Disabling IOMMU for graphics on this chipset\n");
|
|
|
- dmar_map_gfx = 0;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);
|