@@ -4162,6 +4162,22 @@
0x0122, /* Plextor M6E (Marvell 88SS9183)*/
quirk_dma_func1_alias);
+static void quirk_dma_func7_alias(struct pci_dev *dev)
+{
+ if (PCI_FUNC(dev->devfn) == 0)
+ pci_add_dma_alias(dev, PCI_DEVFN(PCI_SLOT(dev->devfn), 7), 1);
+}
+
+/*
+ * Certain HECIs in Haswell systems support TPM 2.0. Unfortunately they
+ * perform DMA using the hidden function 7. Fixing this requires this
+ * alias and a patch of the DMAR ACPI table to include the appropriate
+ * MTRR.
+ * https://bugzilla.kernel.org/show_bug.cgi?id=108251
+ */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9c3a,
+ quirk_dma_func7_alias);
+
/*
* Some devices DMA with the wrong devfn, not just the wrong function.
* quirk_fixed_dma_alias() uses this table to create fixed aliases, where