From: "Steven L. Kinney" <steven.kin...@amd.com> Original code base by Andreas Herrmann at AMD with minor changes.
Signed-off-by: Steven L. Kinney <steven.kin...@amd.com> --- arch/x86/kernel/quirks.c | 17 +++++++++++++++++ include/linux/pci_ids.h | 2 ++ 2 files changed, 19 insertions(+) diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c index 26ee48a..ab27b88 100644 --- a/arch/x86/kernel/quirks.c +++ b/arch/x86/kernel/quirks.c @@ -567,3 +567,20 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F5, quirk_amd_nb_node); #endif + +#if defined(CONFIG_PCI) && defined(CONFIG_AMD_IOMMU_V2_PC) + +static void amd_force_iommu_v2_pc(struct pci_dev *dev) +{ + u32 val; + + pci_read_config_dword(dev, 0x70, &val); + val |= (1<<9); + pci_write_config_dword(dev, 0x70, val); + dev_printk(KERN_DEBUG, &dev->dev, "Enabled IOMMUv2 PC\n"); +} + +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M10H_IOMMU, + amd_force_iommu_v2_pc); + +#endif diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 0eb6579..c6ce47b 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -396,6 +396,8 @@ /* AMD RD890 Chipset */ #define PCI_DEVICE_ID_RD890_IOMMU 0x5a23 +#define PCI_DEVICE_ID_AMD_15H_M10H_IOMMU 0x1419 + #define PCI_VENDOR_ID_ADL 0x1005 #define PCI_DEVICE_ID_ADL_2301 0x2301 -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/