]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: Disable ACS SV for IDT 0x8090 switch
authorManivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Fri, 2 Jan 2026 15:34:50 +0000 (21:04 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 6 Feb 2026 22:54:12 +0000 (16:54 -0600)
The IDT switch with Device ID 0x8090 used in the ARM Juno R2 development
board incorrectly raises an ACS Source Validation error on Completions for
Config Read Requests, even though PCIe r7.0, sec 6.12.1.1, says that
Completions are never affected by ACS Source Validation.

This is already handled by the pci_disable_broken_acs_cap() quirk for the
IDT 0x80b5 switch. Extend the quirk for the 0x8090 device too.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Link: https://patch.msgid.link/20260102-pci_acs-v3-4-72280b94d288@oss.qualcomm.com
drivers/pci/quirks.c

index 6360c172ff0d9c1e5a44a417e4b82e8e7e394a75..e5c32a21d57f6fd86742ed31ff8791edda193153 100644 (file)
@@ -5824,7 +5824,7 @@ DECLARE_PCI_FIXUP_CLASS_RESUME_EARLY(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
 void pci_disable_broken_acs_cap(struct pci_dev *pdev)
 {
        if (pdev->vendor == PCI_VENDOR_ID_IDT &&
-           pdev->device == 0x80b5) {
+           (pdev->device == 0x80b5 || pdev->device == 0x8090)) {
                pci_info(pdev, "Disabling broken ACS SV; downstream device isolation reduced\n");
                pdev->acs_capabilities &= ~PCI_ACS_SV;
        }