[PATCH v2 00/12] irqchip/gic-v3: Add support for GICv3.1 extended PPI/SPI ranges

From: Marc Zyngier
Date: Tue Aug 06 2019 - 06:01:32 EST


Apparently, having ~1000 wired interrupts is not enough, and some
people need more. Fear not! The GIC Achitecture Department hereby
grants you another 1024 SPIs, together with 64 PPIs, provided that you
implement GICv3.1 (see [1] for the details)

This series implements the required support, which requires a bit of
infrastructure rework in order to make the thing less horrible...

This has been tested on a FastModel. If there is no additional issue being
reported, I plan to put this into -next toward the end of this week and
let it simmer there for a bit.

[1] https://developer.arm.com/docs/ihi0069/latest (version E)

* From v1:
- Tighten ESPI range matching
- Added a warning to detect inconsistent distributor/cpu interface
configurations
- Added quirks to handle HIP06/07 erratum 161010803 which unexpectedly
advertise ESPI support

Marc Zyngier (12):
irqchip/gic: Rework gic_configure_irq to take the full ICFGR base
irqchip/gic-v3: Add INTID range and convertion primitives
dt-bindings: interrupt-controller: arm,gic-v3: Describe ESPI range
support
irqchip/gic-v3: Add ESPI range support
irqchip/gic: Prepare for more than 16 PPIs
irqchip/gic-v3: Dynamically allocate PPI NMI refcounts
irqchip/gic-v3: Dynamically allocate PPI partition descriptors
dt-bindings: interrupt-controller: arm,gic-v3: Describe EPPI range
support
irqchip/gic-v3: Add EPPI range support
irqchip/gic-v3: Warn about inconsistent implementations of extended
ranges
irqchip/gic: Skip DT quirks when evaluating IIDR-based quirks
irqchip/gic-v3: Add quirks for HIP06/07 invalid GICD_TYPER erratum
161010803

Documentation/arm64/silicon-errata.rst | 2 +
.../interrupt-controller/arm,gic-v3.yaml | 6 +-
drivers/irqchip/irq-gic-common.c | 35 +-
drivers/irqchip/irq-gic-common.h | 2 +-
drivers/irqchip/irq-gic-v3.c | 380 ++++++++++++++----
drivers/irqchip/irq-gic.c | 12 +-
drivers/irqchip/irq-hip04.c | 9 +-
include/linux/irqchip/arm-gic-v3.h | 30 +-
8 files changed, 372 insertions(+), 104 deletions(-)

--
2.20.1