mvebu PCIe PME and AER interrupts are reported via PCIe summary
interrupt. PCIe summary interrupt is reported via mvebu MPIC SoC error
summary interrupt. And MPIC SoC error summary interrupt is reported via
MPIC IRQ 4.
This patch series implements support for interrupts in MPIC SoC error
hierarchy in irq-armada-370-xp.c driver and support for interrupts in
mvebu PCIe hierarchy in pci-mvebu.c.
Finally PCIe PME and AER interrupts are routed to the correct PCIe Root
Port, which allows kernel PME and AER drivers to take care of them.
Tested on A385 board and kernel PME and AER drivers works correctly:
[ 0.898482] pcieport 0000:00:01.0: PME: Signaling with IRQ 61
[ 0.904422] pcieport 0000:00:01.0: AER: enabled with IRQ 61
[ 0.910113] pcieport 0000:00:02.0: enabling device (0140 -> 0142)
[ 0.916299] pcieport 0000:00:02.0: PME: Signaling with IRQ 62
[ 0.922216] pcieport 0000:00:02.0: AER: enabled with IRQ 62
[ 0.927917] pcieport 0000:00:03.0: enabling device (0140 -> 0142)
[ 0.934090] pcieport 0000:00:03.0: PME: Signaling with IRQ 63
[ 0.940006] pcieport 0000:00:03.0: AER: enabled with IRQ 63
This change finally allows to debug PCIe issues on A385 boards.
Pali Rohár (6):
dt-bindings: irqchip: armada-370-xp: Update information about MPIC SoC
Error
irqchip/armada-370-xp: Implement SoC Error interrupts
ARM: dts: armada-38x.dtsi: Add node for MPIC SoC Error IRQ controller
dt-bindings: PCI: mvebu: Update information about summary interrupt
PCI: mvebu: Implement support for interrupts on emulated bridge
ARM: dts: armada-385.dtsi: Add definitions for PCIe summary interrupts
.../marvell,armada-370-xp-mpic.txt | 9 +
.../devicetree/bindings/pci/mvebu-pci.txt | 1 +
arch/arm/boot/dts/armada-385.dtsi | 20 +-
arch/arm/boot/dts/armada-38x.dtsi | 5 +
drivers/irqchip/irq-armada-370-xp.c | 213 +++++++++++++++++-
drivers/pci/controller/pci-mvebu.c | 208 +++++++++++++++--
6 files changed, 426 insertions(+), 30 deletions(-)
--
2.20.1
Signed-off-by: Pali Rohár <[email protected]>
---
Documentation/devicetree/bindings/pci/mvebu-pci.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/pci/mvebu-pci.txt b/Documentation/devicetree/bindings/pci/mvebu-pci.txt
index 6d022a9d36ee..ef33558210d0 100644
--- a/Documentation/devicetree/bindings/pci/mvebu-pci.txt
+++ b/Documentation/devicetree/bindings/pci/mvebu-pci.txt
@@ -83,6 +83,7 @@ and the following optional properties:
specified will default to 100ms, as required by the PCIe specification.
- interrupt-names: list of interrupt names, supported are:
- "intx" - interrupt line triggered by one of the legacy interrupt
+ - "summary" - interrupt line triggered by any event, including "intx"
- interrupts or interrupts-extended: List of the interrupt sources which
corresponding to the "interrupt-names". If non-empty then also additional
'interrupt-controller' subnode must be defined.
--
2.20.1