[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1587418630-13562-2-git-send-email-jonathan.derrick@intel.com>
Date: Mon, 20 Apr 2020 15:37:09 -0600
From: Jon Derrick <jonathan.derrick@...el.com>
To: Bjorn Helgaas <helgaas@...nel.org>
Cc: <linux-pci@...r.kernel.org>, Keith Busch <kbusch@...nel.org>,
Jon Derrick <jonathan.derrick@...el.com>,
Russell Currey <ruscur@...sell.cc>,
Sam Bobroff <sbobroff@...ux.ibm.com>,
"Oliver O'Halloran" <oohall@...il.com>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@...ux.intel.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Frederick Lawler <fred@...dlawl.com>,
Rajat Jain <rajatja@...gle.com>,
"Patel, Mayurkumar" <mayurkumar.patel@...el.com>,
Olof Johansson <olof@...om.net>,
"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
Mika Westerberg <mika.westerberg@...ux.intel.com>,
Alex Williamson <alex.williamson@...hat.com>,
linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org
Subject: [PATCH v2 1/2] PCI/AER: Allow Native AER Host Bridges to use AER
Some platforms have a mix of ports whose capabilities can be negotiated
by _OSC, and some ports which are not described by ACPI and instead
managed by Native drivers. The existing Firmware-First HEST model can
incorrectly tag these Native, Non-ACPI ports as Firmware-First managed
ports by advertising the HEST Global Flag and matching the type and
class of the port (aer_hest_parse).
If the port requests Native AER through the Host Bridge's capability
settings, the AER driver should honor those settings and allow the port
to bind. This patch changes the definition of Firmware-First to exclude
ports whose Host Bridges request Native AER.
Signed-off-by: Jon Derrick <jonathan.derrick@...el.com>
---
drivers/pci/pcie/aer.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index f4274d3..30fbd1f 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -314,6 +314,9 @@ int pcie_aer_get_firmware_first(struct pci_dev *dev)
if (pcie_ports_native)
return 0;
+ if (pci_find_host_bridge(dev->bus)->native_aer)
+ return 0;
+
if (!dev->__aer_firmware_first_valid)
aer_set_firmware_first(dev);
return dev->__aer_firmware_first;
--
1.8.3.1
Powered by blists - more mailing lists