[GIT PULL] irqchip updates for 5.2

From: Marc Zyngier
Date: Fri May 03 2019 - 10:54:56 EST


Hi Thomas,

Here's the set of irqchip (and related) updates for 5.2. The main
offenders are the TI SCI drivers, which we've finally managed to fit
in the MSI framework. It comes with its own firmware interface, hence
some touching some files outside of the usual areas. Another one is
the revamp of the IOMMU MSI mapping API, which is now RT friendly (the
relevant IOMMU changes have been acked by Joerg). Also, the
stm32mp1-exti has been rewritten to be be able to deal with probe
deferral.

The rest is a motley crew of smaller cleanups and fixes.

Please pull,

M.

The following changes since commit dc4060a5dc2557e6b5aa813bf5b73677299d62d2:

Linux 5.1-rc5 (2019-04-14 15:17:41 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 16e32c3cde7763ab875b9030b443ecbc8e352d8a:

iommu/dma-iommu: Remove iommu_dma_map_msi_msg() (2019-05-03 15:30:23 +0100)

----------------------------------------------------------------
irqchip updates for 5.2

- The huge (and terrifying) TI INTR/INTA set of drivers
- Rewrite of the stm32mp1-exti driver as a platform driver
- Update the IOMMU MSI mapping API to be RT friendly
- A number of cleanups and other low impact fixes

----------------------------------------------------------------
Anson Huang (1):
irqchip/imx-irqsteer: Use devm_platform_ioremap_resource() to simplify code

Fabien Dessenne (1):
irqchip/stm32: Use a platform driver for stm32mp1-exti device

Florian Fainelli (1):
irqchip/bcm: Restore registration print with %pOF

Geert Uytterhoeven (2):
irqchip: Remove unneeded select IRQ_DOMAIN
irqchip/renesas-intc-irqpin: Remove devm_kzalloc() error printing

Grygorii Strashko (1):
firmware: ti_sci: Add support to get TISCI handle using of_phandle

Hongbo Yao (1):
irqchip/gic-v3-its: fix some definitions of inner cacheability attributes

Julien Grall (9):
irqchip/gic-v3-its: Fix typo in a comment in its_msi_prepare()
irq/irqdomain: Fix typo in the comment on top of __irq_domain_alloc_irqs()
genirq/msi: Add a new field in msi_desc to store an IOMMU cookie
iommu/dma-iommu: Split iommu_dma_map_msi_msg() in two parts
irqchip/gicv2m: Don't map the MSI page in gicv2m_compose_msi_msg()
irqchip/gic-v3-its: Don't map the MSI page in its_irq_compose_msi_msg()
irqchip/ls-scfg-msi: Don't map the MSI page in ls_scfg_msi_compose_msg()
irqchip/gic-v3-mbi: Don't map the MSI page in mbi_compose_m{b, s}i_msg()
iommu/dma-iommu: Remove iommu_dma_map_msi_msg()

Lokesh Vutla (12):
firmware: ti_sci: Add support for RM core ops
firmware: ti_sci: Add support for IRQ management
firmware: ti_sci: Add helper apis to manage resources
genirq: Introduce irq_chip_{request,release}_resource_parent() apis
gpio: thunderx: Use the default parent apis for {request,release}_resources
dt-bindings: irqchip: Introduce TISCI Interrupt router bindings
irqchip/ti-sci-intr: Add support for Interrupt Router driver
dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings
irqchip/ti-sci-inta: Add support for Interrupt Aggregator driver
soc: ti: Add MSI domain bus support for Interrupt Aggregator
irqchip/ti-sci-inta: Add msi domain support
arm64: arch_k3: Enable interrupt controller drivers

Peter Ujfalusi (1):
firmware: ti_sci: Add RM mapping table for am654

Rasmus Villemoes (3):
irqchip/gic-v3-its: Move allocation outside mutex
irqchip/gic-v3-its: Drop redundant initialization in mk_lpi_range
irqchip/gic-v3-its: Make free_lpi_range a little cheaper

Sameer Pujar (2):
irqchip/gic-pm: Update driver to use clk_bulk APIs
irqchip/gic-pm: Fix suspend handling

.../devicetree/bindings/arm/keystone/ti,sci.txt | 3 +-
.../bindings/interrupt-controller/ti,sci-inta.txt | 66 +++
.../bindings/interrupt-controller/ti,sci-intr.txt | 82 +++
MAINTAINERS | 6 +
arch/arm64/Kconfig.platforms | 5 +
drivers/firmware/ti_sci.c | 651 +++++++++++++++++++++
drivers/firmware/ti_sci.h | 102 ++++
drivers/gpio/gpio-thunderx.c | 16 +-
drivers/iommu/Kconfig | 1 +
drivers/iommu/dma-iommu.c | 48 +-
drivers/irqchip/Kconfig | 27 +-
drivers/irqchip/Makefile | 2 +
drivers/irqchip/irq-bcm7038-l1.c | 3 +
drivers/irqchip/irq-bcm7120-l2.c | 3 +
drivers/irqchip/irq-brcmstb-l2.c | 2 +
drivers/irqchip/irq-gic-pm.c | 76 +--
drivers/irqchip/irq-gic-v2m.c | 8 +-
drivers/irqchip/irq-gic-v3-its.c | 84 +--
drivers/irqchip/irq-gic-v3-mbi.c | 10 +-
drivers/irqchip/irq-imx-irqsteer.c | 4 +-
drivers/irqchip/irq-ls-scfg-msi.c | 7 +-
drivers/irqchip/irq-renesas-intc-irqpin.c | 4 +-
drivers/irqchip/irq-stm32-exti.c | 233 +++++---
drivers/irqchip/irq-ti-sci-inta.c | 615 +++++++++++++++++++
drivers/irqchip/irq-ti-sci-intr.c | 275 +++++++++
drivers/soc/ti/Kconfig | 6 +
drivers/soc/ti/Makefile | 1 +
drivers/soc/ti/ti_sci_inta_msi.c | 146 +++++
include/linux/dma-iommu.h | 24 +-
include/linux/irq.h | 2 +
include/linux/irqchip/arm-gic-v3.h | 12 +-
include/linux/irqdomain.h | 1 +
include/linux/msi.h | 36 ++
include/linux/soc/ti/ti_sci_inta_msi.h | 23 +
include/linux/soc/ti/ti_sci_protocol.h | 124 ++++
kernel/irq/Kconfig | 3 +
kernel/irq/chip.c | 27 +
kernel/irq/irqdomain.c | 2 +-
38 files changed, 2511 insertions(+), 229 deletions(-)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
create mode 100644 drivers/irqchip/irq-ti-sci-inta.c
create mode 100644 drivers/irqchip/irq-ti-sci-intr.c
create mode 100644 drivers/soc/ti/ti_sci_inta_msi.c
create mode 100644 include/linux/soc/ti/ti_sci_inta_msi.h