[GIT PULL] irqchip updates for 5.19

From: Marc Zyngier
Date: Thu May 19 2022 - 12:53:24 EST


Hi Thomas,

Here are the irqchip (and related) updates for 5.19. The most visible
change is the gpiolib rework to allow for immutable irq_chip
structures. Hopefully, people will take the hint and fix their drivers
so that we can get rid off the flag quickly enough (there is already a
large number of patches on the list on the subject).

The rest is a trickle of GICv3 changes and a bunch of minor fixes all
over the shop.

Please pull,

M.

The following changes since commit b2d229d4ddb17db541098b83524d901257e93845:

Linux 5.18-rc3 (2022-04-17 13:57:31 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git tags/irqchip-5.19

for you to fetch changes up to 492449ae4f0ad96948c3e029ca00736a7f1b3d77:

Merge branch irq/gic-v3-nmi-fixes-5.19 into irq/irqchip-next (2022-05-17 10:37:06 +0100)

----------------------------------------------------------------
irqchip updates for 5.19:

- Add new infrastructure to stop gpiolib from rewriting irq_chip
structures behind our back. Convert a few of them, but this will
obviously be a long effort.

- A bunch of GICv3 improvements, such as using MMIO-based invalidations
when possible, and reducing the amount of polling we perform when
reconfiguring interrupts.

- Another set of GICv3 improvements for the Pseudo-NMI functionality,
with a nice cleanup making it easy to reason about the various
states we can be in when an NMI fires.

- The usual bunch of misc fixes and minor improvements.

----------------------------------------------------------------
Daniel Thompson (1):
irqchip/exiu: Fix acknowledgment of edge triggered interrupts

Florian Fainelli (1):
irqchip/gic: Improved warning about incorrect type

Haowen Bai (1):
irqchip/csky: Return true/false (not 1/0) from bool functions

Krzysztof Kozlowski (2):
irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value
irqchip/aspeed-scu-ic: Fix irq_of_parse_and_map() return value

Lucas Stach (2):
irqchip/imx-irqsteer: Constify irq_chip struct
irqchip/imx-irqsteer: Add runtime PM support

Marc Zyngier (18):
gpio: Don't fiddle with irqchips marked as immutable
gpio: Expose the gpiochip_irq_re[ql]res helpers
gpio: Add helpers to ease the transition towards immutable irq_chip
gpio: tegra186: Make the irqchip immutable
gpio: pl061: Make the irqchip immutable
pinctrl: apple-gpio: Make the irqchip immutable
pinctrl: msmgpio: Make the irqchip immutable
pinctrl: amd: Make the irqchip immutable
gpio: Update TODO to mention immutable irq_chip structures
Documentation: Update the recommended pattern for GPIO irqchips
Merge branch irq/gpio-immutable into irq/irqchip-next
irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
irqchip/gic-v3: Detect LPI invalidation MMIO registers
irqchip/gic-v3: Relax polling of GIC{R,D}_CTLR.RWP
dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit
Merge branch irq/gic-v3-5.19 into irq/irqchip-next
Merge branch irq/misc-5.19 into irq/irqchip-next
Merge branch irq/gic-v3-nmi-fixes-5.19 into irq/irqchip-next

Mark Rutland (3):
irqchip/gic-v3: Ensure pseudo-NMIs have an ISB between ack and handling
irqchip/gic-v3: Refactor ISB + EOIR at ack time
irqchip/gic-v3: Fix priority mask handling

Max Filippov (1):
irqchip/xtensa-mx: Fix initial IRQ affinity in non-SMP setup

Nathan Rossi (1):
irqchip/armada-370-xp: Enable MSI affinity configuration

Pali Rohár (1):
irqchip/armada-370-xp: Do not touch Performance Counter Overflow on A375, A38x, A39x

Robin Murphy (1):
irqchip/gic-v3: Claim iomem resources

Samuel Holland (2):
irqchip/sun6i-r: Use NULL for chip_data
irqchip: Add Kconfig symbols for sunxi drivers

.../bindings/interrupt-controller/arm,gic-v3.yaml | 8 +-
Documentation/driver-api/gpio/driver.rst | 175 +++++++++++---
arch/arm/include/asm/arch_gicv3.h | 7 +-
arch/arm/mach-sunxi/Kconfig | 12 +-
arch/arm64/Kconfig.platforms | 6 +-
arch/arm64/include/asm/arch_gicv3.h | 6 -
drivers/gpio/TODO | 19 ++
drivers/gpio/gpio-pl061.c | 32 ++-
drivers/gpio/gpio-tegra186.c | 32 ++-
drivers/gpio/gpiolib.c | 13 +-
drivers/irqchip/Kconfig | 12 +
drivers/irqchip/Makefile | 6 +-
drivers/irqchip/irq-armada-370-xp.c | 56 +++--
drivers/irqchip/irq-aspeed-i2c-ic.c | 4 +-
drivers/irqchip/irq-aspeed-scu-ic.c | 4 +-
drivers/irqchip/irq-csky-apb-intc.c | 4 +-
drivers/irqchip/irq-gic-v3.c | 256 +++++++++++++--------
drivers/irqchip/irq-gic.c | 6 +-
drivers/irqchip/irq-imx-irqsteer.c | 16 +-
drivers/irqchip/irq-sni-exiu.c | 25 +-
drivers/irqchip/irq-sun6i-r.c | 6 +-
drivers/irqchip/irq-xtensa-mx.c | 18 +-
drivers/pinctrl/pinctrl-amd.c | 11 +-
drivers/pinctrl/pinctrl-apple-gpio.c | 29 +--
drivers/pinctrl/qcom/pinctrl-msm.c | 53 +++--
include/linux/gpio/driver.h | 16 ++
include/linux/irq.h | 2 +
include/linux/irqchip/arm-gic-v3.h | 2 +
kernel/irq/debugfs.c | 1 +
29 files changed, 597 insertions(+), 240 deletions(-)