#ifdef CONFIG_PCI_QUIRKS
 int pci_dev_specific_acs_enabled(struct pci_dev *dev, u16 acs_flags);
 int pci_dev_specific_enable_acs(struct pci_dev *dev);
+int pci_dev_specific_disable_acs_redir(struct pci_dev *dev);
 #else
 static inline int pci_dev_specific_acs_enabled(struct pci_dev *dev,
                                               u16 acs_flags)
 {
        return -ENOTTY;
 }
+static inline int pci_dev_specific_disable_acs_redir(struct pci_dev *dev)
+{
+       return -ENOTTY;
+}
 #endif
 
 /* PCI error reporting and recovery */
 
        return 0;
 }
 
-static const struct pci_dev_enable_acs {
+static const struct pci_dev_acs_ops {
        u16 vendor;
        u16 device;
        int (*enable_acs)(struct pci_dev *dev);
-} pci_dev_enable_acs[] = {
-       { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_pch_acs },
-       { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_spt_pch_acs },
+       int (*disable_acs_redir)(struct pci_dev *dev);
+} pci_dev_acs_ops[] = {
+       { PCI_VENDOR_ID_INTEL, PCI_ANY_ID,
+           .enable_acs = pci_quirk_enable_intel_pch_acs,
+       },
+       { PCI_VENDOR_ID_INTEL, PCI_ANY_ID,
+           .enable_acs = pci_quirk_enable_intel_spt_pch_acs,
+       },
 };
 
 int pci_dev_specific_enable_acs(struct pci_dev *dev)
 {
-       const struct pci_dev_enable_acs *p;
+       const struct pci_dev_acs_ops *p;
        int i, ret;
 
-       for (i = 0; i < ARRAY_SIZE(pci_dev_enable_acs); i++) {
-               p = &pci_dev_enable_acs[i];
+       for (i = 0; i < ARRAY_SIZE(pci_dev_acs_ops); i++) {
+               p = &pci_dev_acs_ops[i];
                if ((p->vendor == dev->vendor ||
                     p->vendor == (u16)PCI_ANY_ID) &&
                    (p->device == dev->device ||
-                    p->device == (u16)PCI_ANY_ID)) {
+                    p->device == (u16)PCI_ANY_ID) &&
+                   p->enable_acs) {
                        ret = p->enable_acs(dev);
                        if (ret >= 0)
                                return ret;
        return -ENOTTY;
 }
 
+int pci_dev_specific_disable_acs_redir(struct pci_dev *dev)
+{
+       const struct pci_dev_acs_ops *p;
+       int i, ret;
+
+       for (i = 0; i < ARRAY_SIZE(pci_dev_acs_ops); i++) {
+               p = &pci_dev_acs_ops[i];
+               if ((p->vendor == dev->vendor ||
+                    p->vendor == (u16)PCI_ANY_ID) &&
+                   (p->device == dev->device ||
+                    p->device == (u16)PCI_ANY_ID) &&
+                   p->disable_acs_redir) {
+                       ret = p->disable_acs_redir(dev);
+                       if (ret >= 0)
+                               return ret;
+               }
+       }
+
+       return -ENOTTY;
+}
+
 /*
  * The PCI capabilities list for Intel DH895xCC VFs (device ID 0x0443) with
  * QuickAssist Technology (QAT) is prematurely terminated in hardware.  The