summaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorFeng Kan <fkan@apm.com>2018-02-20 19:19:27 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-06-20 10:25:16 +0200
commit00632e0c0bc77538d0bc9dc3f425c6afb03bcb41 (patch)
tree6745a2b895cfbc375b345ee210a5e9f7a1ff0c83 /drivers/pci
parentdde5108b160a78de9d4441215f6c669c21c7afbd (diff)
downloadlinux-stable-00632e0c0bc77538d0bc9dc3f425c6afb03bcb41.tar.gz
linux-stable-00632e0c0bc77538d0bc9dc3f425c6afb03bcb41.tar.bz2
linux-stable-00632e0c0bc77538d0bc9dc3f425c6afb03bcb41.zip
PCI: Add ACS quirk for Ampere root ports
[ Upstream commit 4ef76ad0462cf25ce948541c8724eaa8a8365e1d ] The Ampere Computing PCIe root port does not support ACS at this point. However, the hardware provides isolation and source validation through the SMMU. The stream ID generated by the PCIe ports contain both the bus/device/function number as well as the port ID in its 3 most significant bits. Turn on ACS but disable all the peer-to-peer features. APM is being rebranded to Ampere. The Vendor and Device IDs change, but the functionality stays the same. Signed-off-by: Feng Kan <fkan@apm.com> Signed-off-by: Bjorn Helgaas <helgaas@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/quirks.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index f6e88d5b1c4f..81d76e34b0db 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4610,6 +4610,15 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
/* APM X-Gene */
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
+ /* Ampere Computing */
+ { PCI_VENDOR_ID_AMPERE, 0xE005, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE006, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE007, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE008, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE009, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE00A, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE00B, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs },
{ PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs },
{ 0 }
};