linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/14][treewide] irqdomain: Simplify interrupt handling
@ 2021-08-02 16:26 Marc Zyngier
  2021-08-02 16:26 ` [PATCH v2 01/14] gpio: Bulk conversion to generic_handle_domain_irq() Marc Zyngier
                   ` (13 more replies)
  0 siblings, 14 replies; 17+ messages in thread
From: Marc Zyngier @ 2021-08-02 16:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: Thomas Gleixner, Michael Ellerman, Benjamin Herrenschmidt,
	Paul Mackerras, Ley Foon Tan, Chris Zankel, Max Filippov,
	Vineet Gupta, Thomas Bogendoerfer, Robert Jarzmik, Russell King,
	Krzysztof Kozlowski, Yoshinori Sato, Rich Felker,
	Geert Uytterhoeven, Alex Deucher, Christian König,
	David Airlie, Daniel Vetter, Rob Clark, Linus Walleij, Lee Jones,
	Lorenzo Pieralisi, Rob Herring, Bjorn Helgaas,
	Bartosz Golaszewski, kernel-team

Now that the core patches for generic_handle_domain_irq() have made it
into the core code (see [1]), this series goes over the tree to
simplify the interrupt handling by directly using the irq_data that is
now stored in the IRQ domain.

In summary, anything of the form:

- generic_handle_irq(irq_find_mapping(domain, hwirq)) or
- generic_handle_irq(irq_linear_revmap(domain, hwirq))

is turned into generic_handle_domain_irq(domain, hwirq), which deals
with the gory details.

This series goes over a number of subsystems and architectures, and
also adds a bit of documentation. For those of you wondering about a
merge strategy, all the patches should be independent. Maintainers can
either pick them up themselves, or give me an Ack so that I can take
them via the irqchip tree. Just let me know.

I have an extra set of patches dealing with nested interrupts, but
that still needs to mature a bit.

* From v1 [1]:
  - Merged all the preliminary patches and core support
  - Caught up with a few extra users in 5.14
  - Picked up ABs, RBs, with thanks
  - Rebased on top of v5.14-rc4

[1] https://lore.kernel.org/r/20210520163751.27325-1-maz@kernel.org

Marc Zyngier (14):
  gpio: Bulk conversion to generic_handle_domain_irq()
  pinctrl: Bulk conversion to generic_handle_domain_irq()
  PCI: Bulk conversion to generic_handle_domain_irq()
  mfd: Bulk conversion to generic_handle_domain_irq()
  gpu: Bulk conversion to generic_handle_domain_irq()
  SH: Bulk conversion to generic_handle_domain_irq()
  ARM: Bulk conversion to generic_handle_domain_irq()
  mips: Bulk conversion to generic_handle_domain_irq()
  arc: Bulk conversion to generic_handle_domain_irq()
  xtensa: Bulk conversion to generic_handle_domain_irq()
  nios2: Bulk conversion to generic_handle_domain_irq()
  powerpc: Bulk conversion to generic_handle_domain_irq()
  EDAC/altera: Convert to generic_handle_domain_irq()
  Documentation: Update irq_domain.rst with new lookup APIs

 Documentation/core-api/irq/irq-domain.rst     | 28 +++++++++++++++++--
 arch/arc/kernel/mcip.c                        |  2 +-
 arch/arm/common/sa1111.c                      | 12 ++------
 arch/arm/mach-pxa/pxa_cplds_irqs.c            |  6 ++--
 arch/arm/mach-s3c/irq-s3c24xx.c               |  5 ++--
 arch/mips/ath25/ar2315.c                      | 14 +++++-----
 arch/mips/ath25/ar5312.c                      | 13 ++++-----
 arch/mips/lantiq/irq.c                        |  2 +-
 arch/mips/pci/pci-ar2315.c                    |  8 ++----
 arch/mips/pci/pci-rt3883.c                    |  5 ++--
 arch/mips/ralink/irq.c                        |  2 +-
 arch/mips/sgi-ip27/ip27-irq.c                 | 16 ++++-------
 arch/mips/sgi-ip30/ip30-irq.c                 |  8 ++----
 arch/nios2/kernel/irq.c                       |  4 +--
 arch/powerpc/platforms/4xx/uic.c              |  4 +--
 .../powerpc/platforms/512x/mpc5121_ads_cpld.c | 23 +++++++--------
 arch/powerpc/platforms/52xx/media5200.c       |  9 +++---
 arch/powerpc/platforms/52xx/mpc52xx_gpt.c     |  7 ++---
 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c  |  6 ++--
 arch/powerpc/platforms/cell/interrupt.c       |  8 ++----
 arch/powerpc/platforms/cell/spider-pic.c      | 11 ++------
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 15 +++++-----
 arch/powerpc/platforms/powernv/opal-irqchip.c | 11 +++-----
 arch/powerpc/sysdev/fsl_mpic_err.c            | 11 +++-----
 arch/powerpc/sysdev/fsl_msi.c                 | 12 +++-----
 arch/sh/boards/mach-se/7343/irq.c             |  2 +-
 arch/sh/boards/mach-se/7722/irq.c             |  2 +-
 arch/sh/boards/mach-x3proto/gpio.c            |  2 +-
 arch/xtensa/kernel/irq.c                      |  4 +--
 drivers/edac/altera_edac.c                    |  7 ++---
 drivers/gpio/gpio-104-dio-48e.c               |  4 +--
 drivers/gpio/gpio-104-idi-48.c                |  4 +--
 drivers/gpio/gpio-104-idio-16.c               |  2 +-
 drivers/gpio/gpio-altera.c                    | 11 ++++----
 drivers/gpio/gpio-aspeed-sgpio.c              |  9 ++----
 drivers/gpio/gpio-aspeed.c                    |  9 ++----
 drivers/gpio/gpio-ath79.c                     |  7 ++---
 drivers/gpio/gpio-bcm-kona.c                  |  6 ++--
 drivers/gpio/gpio-brcmstb.c                   |  5 ++--
 drivers/gpio/gpio-cadence.c                   |  2 +-
 drivers/gpio/gpio-davinci.c                   |  3 +-
 drivers/gpio/gpio-dln2.c                      | 22 ++++++---------
 drivers/gpio/gpio-em.c                        |  2 +-
 drivers/gpio/gpio-ep93xx.c                    |  8 +++---
 drivers/gpio/gpio-ftgpio010.c                 |  3 +-
 drivers/gpio/gpio-hisi.c                      |  4 +--
 drivers/gpio/gpio-hlwd.c                      |  7 ++---
 drivers/gpio/gpio-merrifield.c                |  8 ++----
 drivers/gpio/gpio-mpc8xxx.c                   |  2 +-
 drivers/gpio/gpio-mt7621.c                    |  4 +--
 drivers/gpio/gpio-mxc.c                       |  2 +-
 drivers/gpio/gpio-mxs.c                       |  2 +-
 drivers/gpio/gpio-omap.c                      |  3 +-
 drivers/gpio/gpio-pci-idio-16.c               |  2 +-
 drivers/gpio/gpio-pcie-idio-24.c              |  3 +-
 drivers/gpio/gpio-pl061.c                     |  4 +--
 drivers/gpio/gpio-pxa.c                       |  9 +++---
 drivers/gpio/gpio-rcar.c                      |  4 +--
 drivers/gpio/gpio-rda.c                       |  8 ++----
 drivers/gpio/gpio-realtek-otto.c              |  7 ++---
 drivers/gpio/gpio-sch.c                       |  2 +-
 drivers/gpio/gpio-sodaville.c                 |  2 +-
 drivers/gpio/gpio-sprd.c                      | 12 +++-----
 drivers/gpio/gpio-tb10x.c                     |  2 +-
 drivers/gpio/gpio-tegra.c                     |  9 +++---
 drivers/gpio/gpio-tegra186.c                  |  9 ++----
 drivers/gpio/gpio-tqmx86.c                    | 10 +++----
 drivers/gpio/gpio-vf610.c                     |  2 +-
 drivers/gpio/gpio-ws16c48.c                   |  4 +--
 drivers/gpio/gpio-xgs-iproc.c                 |  2 +-
 drivers/gpio/gpio-xilinx.c                    |  2 +-
 drivers/gpio/gpio-xlp.c                       |  3 +-
 drivers/gpio/gpio-zynq.c                      |  8 ++----
 drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c       |  2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c      | 15 +++-------
 drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c     |  3 +-
 drivers/gpu/ipu-v3/ipu-common.c               | 11 +++-----
 drivers/mfd/db8500-prcmu.c                    |  2 +-
 drivers/mfd/fsl-imx25-tsadc.c                 |  4 +--
 drivers/mfd/ioc3.c                            | 10 ++-----
 drivers/mfd/qcom-pm8xxx.c                     | 10 +++----
 drivers/pci/controller/dwc/pci-dra7xx.c       | 16 ++++-------
 drivers/pci/controller/dwc/pci-keystone.c     | 14 ++++------
 .../pci/controller/dwc/pcie-designware-host.c |  9 +++---
 drivers/pci/controller/dwc/pcie-uniphier.c    |  8 ++----
 .../controller/mobiveil/pcie-mobiveil-host.c  | 15 ++++------
 drivers/pci/controller/pci-aardvark.c         |  5 ++--
 drivers/pci/controller/pci-ftpci100.c         |  2 +-
 drivers/pci/controller/pci-tegra.c            |  8 ++----
 drivers/pci/controller/pci-xgene-msi.c        |  9 ++----
 drivers/pci/controller/pcie-altera-msi.c      | 10 +++----
 drivers/pci/controller/pcie-altera.c          | 10 +++----
 drivers/pci/controller/pcie-brcmstb.c         |  9 +++---
 drivers/pci/controller/pcie-iproc-msi.c       |  4 +--
 drivers/pci/controller/pcie-mediatek-gen3.c   | 13 +++------
 drivers/pci/controller/pcie-mediatek.c        | 12 +++-----
 drivers/pci/controller/pcie-microchip-host.c  | 18 +++++-------
 drivers/pci/controller/pcie-rcar-host.c       |  8 ++----
 drivers/pci/controller/pcie-rockchip-host.c   |  8 ++----
 drivers/pci/controller/pcie-xilinx-cpm.c      |  4 +--
 drivers/pci/controller/pcie-xilinx-nwl.c      | 13 ++-------
 drivers/pci/controller/pcie-xilinx.c          |  9 +++---
 drivers/pinctrl/actions/pinctrl-owl.c         |  5 ++--
 drivers/pinctrl/bcm/pinctrl-bcm2835.c         |  4 +--
 drivers/pinctrl/bcm/pinctrl-iproc-gpio.c      |  3 +-
 drivers/pinctrl/bcm/pinctrl-nsp-gpio.c        |  3 +-
 drivers/pinctrl/intel/pinctrl-baytrail.c      |  7 ++---
 drivers/pinctrl/intel/pinctrl-cherryview.c    |  5 ++--
 drivers/pinctrl/intel/pinctrl-lynxpoint.c     |  8 ++----
 drivers/pinctrl/mediatek/mtk-eint.c           |  5 ++--
 drivers/pinctrl/nomadik/pinctrl-nomadik.c     |  2 +-
 drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c     |  2 +-
 drivers/pinctrl/pinctrl-amd.c                 |  6 ++--
 drivers/pinctrl/pinctrl-at91.c                |  6 ++--
 drivers/pinctrl/pinctrl-equilibrium.c         |  2 +-
 drivers/pinctrl/pinctrl-ingenic.c             |  2 +-
 drivers/pinctrl/pinctrl-microchip-sgpio.c     |  2 +-
 drivers/pinctrl/pinctrl-ocelot.c              |  3 +-
 drivers/pinctrl/pinctrl-oxnas.c               |  2 +-
 drivers/pinctrl/pinctrl-pic32.c               |  2 +-
 drivers/pinctrl/pinctrl-pistachio.c           |  2 +-
 drivers/pinctrl/pinctrl-rockchip.c            | 15 ++++------
 drivers/pinctrl/pinctrl-single.c              |  4 +--
 drivers/pinctrl/pinctrl-st.c                  |  2 +-
 drivers/pinctrl/qcom/pinctrl-msm.c            |  4 +--
 drivers/pinctrl/samsung/pinctrl-exynos.c      | 15 +++++-----
 drivers/pinctrl/samsung/pinctrl-s3c24xx.c     | 25 +++++++----------
 drivers/pinctrl/samsung/pinctrl-s3c64xx.c     | 17 +++++------
 drivers/pinctrl/spear/pinctrl-plgpio.c        |  3 +-
 drivers/pinctrl/sunxi/pinctrl-sunxi.c         |  8 ++----
 130 files changed, 362 insertions(+), 555 deletions(-)

-- 
2.30.2


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2021-08-05  9:17 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-02 16:26 [PATCH v2 00/14][treewide] irqdomain: Simplify interrupt handling Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 01/14] gpio: Bulk conversion to generic_handle_domain_irq() Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 02/14] pinctrl: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 03/14] PCI: " Marc Zyngier
2021-08-02 16:59   ` Bjorn Helgaas
2021-08-02 16:26 ` [PATCH v2 04/14] mfd: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 05/14] gpu: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 06/14] SH: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 07/14] ARM: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 08/14] mips: " Marc Zyngier
2021-08-05  9:10   ` Thomas Bogendoerfer
2021-08-02 16:26 ` [PATCH v2 09/14] arc: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 10/14] xtensa: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 11/14] nios2: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 12/14] powerpc: " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 13/14] EDAC/altera: Convert " Marc Zyngier
2021-08-02 16:26 ` [PATCH v2 14/14] Documentation: Update irq_domain.rst with new lookup APIs Marc Zyngier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).