PCI: aardvark: Add support for AER registers on emulated bridge
authorPali Rohár <pali@kernel.org>
Tue, 24 May 2022 13:28:26 +0000 (15:28 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 13 Jun 2022 23:41:10 +0000 (18:41 -0500)
commit1326b49636065a29b0aa3832ac963df2a9cece08
tree14ce6f576971ae5d7de51879b1eeafcf659acc69
parentf2906aa863381afb0015a9eb7fefad885d4e5a56
PCI: aardvark: Add support for AER registers on emulated bridge

Aardvark controller supports Advanced Error Reporting configuration
registers.

Export these registers on the emulated root bridge via new .read_ext() and
.write_ext() methods.

Note that in the Advanced Error Reporting Capability header the offset to
the next Extended Capability header is set, but it is not documented in
Armada 3700 Functional Specification. Since this change adds support only
for Advanced Error Reporting, explicitly clear PCI_EXT_CAP_NEXT bits in AER
capability header.

Now the pcieport driver correctly detects AER support and allows PCIe AER
driver to start receiving ERR interrupts. Kernel log now says:

  pcieport 0000:00:00.0: AER: enabled with IRQ 52

Link: https://lore.kernel.org/r/20220524132827.8837-2-kabel@kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/controller/pci-aardvark.c