From: Bjorn Helgaas Date: Thu, 7 Sep 2017 18:24:41 +0000 (-0500) Subject: Merge branch 'pci/virtualization' into next X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=cf2d804110d3c20dc6865ade514c44179de34855;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git Merge branch 'pci/virtualization' into next * pci/virtualization: PCI: Disable VF decoding before pcibios_sriov_disable() updates resources PCI: Add ACS quirk for APM X-Gene devices PCI: Mark AMD Stoney GPU ATS as broken Conflicts: drivers/pci/quirks.c --- cf2d804110d3c20dc6865ade514c44179de34855 diff --cc drivers/pci/quirks.c index 35dcd90f98c4,92bea8accc35..3821c11c9add --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@@ -4665,18 -4696,17 +4679,33 @@@ static void quirk_intel_no_flr(struct p DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_intel_no_flr); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_intel_no_flr); +static void quirk_no_ext_tags(struct pci_dev *pdev) +{ + struct pci_host_bridge *bridge = pci_find_host_bridge(pdev->bus); + + if (!bridge) + return; + + bridge->no_ext_tags = 1; + dev_info(&pdev->dev, "disabling Extended Tags (this device can't handle them)\n"); + + pci_walk_bus(bridge->bus, pci_configure_extended_tags, NULL); +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0140, quirk_no_ext_tags); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0144, quirk_no_ext_tags); ++ + #ifdef CONFIG_PCI_ATS + /* + * Some devices have a broken ATS implementation causing IOMMU stalls. + * Don't use ATS for those devices. + */ + static void quirk_no_ats(struct pci_dev *pdev) + { + dev_info(&pdev->dev, "disabling ATS (broken on this device)\n"); + pdev->ats_cap = 0; + } + + /* AMD Stoney platform GPU */ + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats); + #endif /* CONFIG_PCI_ATS */