your customers the hassle of this boot option.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
.../admin-guide/kernel-parameters.txt | 9 ++
- drivers/pci/quirks.c | 101 ++++++++++++++++++
- 2 files changed, 110 insertions(+)
+ drivers/pci/quirks.c | 102 ++++++++++++++++++
+ 2 files changed, 111 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index 43b61d87c9a3..00bc6786e6e0 100644
+index a74453c464b0..dca92e06e431 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -3067,6 +3067,15 @@
+@@ -3646,6 +3646,15 @@
Also, it enforces the PCI Local Bus spec
rule that those bits should be 0 in system reset
events (useful for kexec/kdump cases).
Safety option to keep boot IRQs enabled. This
should never be necessary.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 2956ebbd83dc..8dceb0838970 100644
+index 6c2c8dafccfd..220a848de745 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -3705,6 +3705,106 @@ static int __init pci_apply_final_quirks(void)
-
+@@ -192,6 +192,106 @@ static int __init pci_apply_final_quirks(void)
+ }
fs_initcall_sync(pci_apply_final_quirks);
+static bool acs_on_downstream;
+}
+
/*
- * Following are device-specific reset methods which can be used to
- * reset a single function if other methods (e.g. FLR, PM D0->D3) are
-@@ -4558,6 +4658,7 @@ static const struct pci_dev_acs_enabled {
+ * Decoding should be disabled for a PCI device during BAR sizing to avoid
+ * conflict. But doing so may cause problems on host bridge and perhaps other
+@@ -4770,6 +4870,8 @@ 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 },
++ /* Enable overrides for missing ACS capabilities */
+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
- { 0 }
- };
-
+ /* Ampere Computing */
+ { PCI_VENDOR_ID_AMPERE, 0xE005, pci_quirk_xgene_acs },
+ { PCI_VENDOR_ID_AMPERE, 0xE006, pci_quirk_xgene_acs },