Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9eecabcb authored by David Woodhouse's avatar David Woodhouse
Browse files

intel-iommu: Abort IOMMU setup for igfx if BIOS gave no shadow GTT space



Yet another BIOS bug; Lenovo this time (X201). Red Hat bug #593516.

Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent b30a3f62
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -3761,6 +3761,23 @@ static void __devinit quirk_iommu_rwbf(struct pci_dev *dev)

DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf);

static void __devinit quirk_calpella_no_shadow_gtt(struct pci_dev *dev)
{
	unsigned short ggc;

	if (pci_read_config_word(dev, 0x52, &ggc))
		return;

	if (!(ggc & 0x800)) {
		printk(KERN_INFO "DMAR: BIOS has allocated no shadow GTT; disabling IOMMU for graphics\n");
		dmar_map_gfx = 0;
	}
}
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0040, quirk_calpella_no_shadow_gtt);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0044, quirk_calpella_no_shadow_gtt);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0062, quirk_calpella_no_shadow_gtt);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x006a, quirk_calpella_no_shadow_gtt);

/* On Tylersburg chipsets, some BIOSes have been known to enable the
   ISOCH DMAR unit for the Azalia sound device, but not give it any
   TLB entries, which causes it to deadlock. Check for that.  We do