mbox series

[v2,00/57] irqdomain: Cleanups and Documentation

Message ID 20250319092951.37667-1-jirislaby@kernel.org (mailing list archive)
Headers show
Series irqdomain: Cleanups and Documentation | expand

Message

Jiri Slaby March 19, 2025, 9:28 a.m. UTC
Hi,

tl;dr if patches are agreed upon, I ask subsys maintainers to take the
respective ones via their trees (as they are split per subsys), so that
the IRQ tree can take only the rest. That would minimize churn/conflicts
during merges.

===

While I was reading through the irqdomain code and headers, I found some
naming and documentation hard to follow or incomplete. Especially the
naming of _add/_create/_instantiate functions.

I tried to come up with a better state with this patchset:
* only irq _domain_ (not host),
* only irq_domain_create*() functions, all taking fwnode uniformly,

Finally, all the irqdomain stuff is now plugged (and generated) into
Documentation. So that everyone can walk through it at
https://www.kernel.org/doc/ (once applied, of course).

Changelog
---------
[v2]
- 'extern' removal patch dropped (already merged into tip),
- some new patches added,
- only _create*() functions preserved, all _add*() are removed,
  as per <87wme3m4a9.ffs@tglx>.

Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Alexandre Ghiti <alex@ghiti.fr>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Alex Shi <alexs@kernel.org>
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: "Alvin Šipraga" <alsi@bang-olufsen.dk>
Cc: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Cc: amd-gfx@lists.freedesktop.org
Cc: Amit Kucheria <amitk@kernel.org>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Andi Shyti <andi.shyti@kernel.org>
Cc: "Andreas Färber" <afaerber@suse.de>
Cc: Andreas Kemnade <andreas@kemnade.info>
Cc: Andrew Jeffery <andrew@codeconstruct.com.au>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Andy Shevchenko <andy@kernel.org>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: Antoine Tenart <atenart@kernel.org>
Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Cc: Anup Patel <anup@brainfault.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: asahi@lists.linux.dev
Cc: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Bharat Kumar Gogada <bharat.kumar.gogada@amd.com>
Cc: Bjorn Andersson <andersson@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Cc: Corentin Chary <corentin.chary@gmail.com>
Cc: Daire McNamara <daire.mcnamara@microchip.com>
Cc: Daniel Golle <daniel@makrotopia.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Daniel Mack <daniel@zonque.org>
Cc: Daniel Palmer <daniel@thingy.jp>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David Airlie <airlied@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: DENG Qingfang <dqfext@gmail.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Dongliang Mu <dzm91@hust.edu.cn>
Cc: Doug Berger <opendmb@gmail.com>
Cc: dri-devel@lists.freedesktop.org
Cc: Eddie James <eajames@linux.ibm.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Florian Fainelli <florian.fainelli@broadcom.com>
Cc: Geoff Levand <geoff@infradead.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Guo Ren <guoren@kernel.org>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Haojian Zhuang <haojian.zhuang@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Herve Codina <herve.codina@bootlin.com>
Cc: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: Changhuang Liang <changhuang.liang@starfivetech.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: "Chester A. Unal" <chester.a.unal@arinc9.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Chris Zankel <chris@zankel.net>
Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: Imre Kaloz <kaloz@openwrt.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: James Morse <james.morse@arm.com>
Cc: Janne Grunau <j@jannau.net>
Cc: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Jernej Skrabec <jernej.skrabec@gmail.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Jianjun Wang <jianjun.wang@mediatek.com>
Cc: Jiawen Wu <jiawenwu@trustnetic.com>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
Cc: Jim Quinlan <jim2101024@gmail.com>
Cc: Jingoo Han <jingoohan1@gmail.com>
Cc: Joel Stanley <joel@jms.id.au>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: John Crispin <john@phrozen.org>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: Jonas Bonn <jonas@southpole.se>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: "Jonathan Neuschäfer" <j.neuschaefer@gmx.net>
Cc: Joyce Ooi <joyce.ooi@intel.com>
Cc: Karthikeyan Mitran <m.karthikeyan@mobiveil.co.in>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Konrad Dybcio <konradybcio@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: "Krzysztof Wilczyński" <kw@linux.com>
Cc: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Cc: Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Lee Jones <lee@kernel.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Linus Walleij <linusw@kernel.org>
Cc: linux-amlogic@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: linux-i2c@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-mips@vger.kernel.org
Cc: linux-omap@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-remoteproc@vger.kernel.org
Cc: linux-riscv@lists.infradead.org
Cc: linux-rpi-kernel@lists.infradead.org
Cc: linux-sh@vger.kernel.org
Cc: linux-snps-arc@lists.infradead.org
Cc: linux-sound@vger.kernel.org
Cc: linux-stm32@st-md-mailman.stormreply.com
Cc: linux-um@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Cc: loongarch@lists.linux.dev
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: Ludovic Desroches <ludovic.desroches@microchip.com>
Cc: Lukasz Luba <lukasz.luba@arm.com>
Cc: "Luke D. Jones" <luke@ljones.dev>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: "Marek Behún" <kabel@kernel.org>
Cc: Marijn Suijten <marijn.suijten@somainline.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Mengyuan Lou <mengyuanlou@net-swift.com>
Cc: Michael Buesch <m@bues.ch>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Simek <michal.simek@amd.com>
Cc: Miodrag Dinic <miodrag.dinic@mips.com>
Cc: Naveen N Rao <naveen@kernel.org>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Cc: netdev@vger.kernel.org
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Nicolas Saenz Julienne <nsaenz@kernel.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Nikhil Agarwal <nikhil.agarwal@amd.com>
Cc: Nipun Gupta <nipun.gupta@amd.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: "Pali Rohár" <pali@kernel.org>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Paul Cercueil <paul@crapouillou.net>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Peter Rosin <peda@axentia.se>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
Cc: platform-driver-x86@vger.kernel.org
Cc: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
Cc: Qiang Zhao <qiang.zhao@nxp.com>
Cc: Qin Jian <qinjian@cqplus1.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Ray Jui <rjui@broadcom.com>
Cc: Rengarajan Sundararajan <Rengarajan.S@microchip.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Rich Felker <dalias@libc.org>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Robert Richter <rric@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Roger Quadros <rogerq@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Ryan Chen <ryan_chen@aspeedtech.com>
Cc: Ryder Lee <ryder.lee@mediatek.com>
Cc: Samuel Holland <samuel@sholland.org>
Cc: Santosh Shilimkar <ssantosh@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Scott Branden <sbranden@broadcom.com>
Cc: Scott Wood <oss@buserror.net>
Cc: Sean Paul <sean@poorly.run>
Cc: Sean Wang <sean.wang@kernel.org>
Cc: Sean Wang <sean.wang@mediatek.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Shawn Lin <shawn.lin@rock-chips.com>
Cc: Siddharth Vadapalli <s-vadapalli@ti.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Stafford Horne <shorne@gmail.com>
Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Sven Peter <sven@svenpeter.dev>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Talel Shenhar <talel@amazon.com>
Cc: Tero Kristo <kristo@kernel.org>
Cc: Thangaraj Samynathan <Thangaraj.S@microchip.com>
Cc: Thara Gopinath <thara.gopinath@gmail.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Toan Le <toan@os.amperecomputing.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: UNGLinuxDriver@microchip.com
Cc: "Uwe Kleine-König" <ukleinek@kernel.org>
Cc: Vignesh Raghavendra <vigneshr@ti.com>
Cc: Vineet Gupta <vgupta@kernel.org>
Cc: Vladimir Oltean <olteanv@gmail.com>
Cc: Vladimir Zapolskiy <vz@mleia.com>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Woojung Huh <woojung.huh@microchip.com>
Cc: x86@kernel.org
Cc: Yanteng Si <si.yanteng@linux.dev>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Zhang Rui <rui.zhang@intel.com>

Jiri Slaby (SUSE) (57):
  irqdomain: um: use irq_domain_create_linear() helper
  irqdomain: Rename irq_set_default_host() to irq_set_default_domain()
  irqdomain: Rename irq_get_default_host() to irq_get_default_domain()
  irqdomain.h: Stop using 'host' for domain
  irqdomain: cdx: Switch to of_fwnode_handle()
  irqdomain: irqchip: Switch to of_fwnode_handle()
  irqdomain: pci: Switch to of_fwnode_handle()
  irqdomain: ppc: Switch to of_fwnode_handle()
  irqdomain: remoteproc: Switch to of_fwnode_handle()
  irqdomain: x86: Switch to of_fwnode_handle()
  irqdomain: Drop of_node_to_fwnode()
  irqdomain: Make irq_domain_create_hierarchy() an inline
  irqdomain: arc: Switch to irq_domain_create_linear()
  irqdomain: arm: Switch to irq_domain_create_*()
  irqdomain: bus: Switch to irq_domain_create_simple()
  irqdomain: edac: Switch to irq_domain_create_linear()
  irqdomain: gpio: Switch to irq_domain_create_*()
  irqdomain: gpu: Switch to irq_domain_create_linear()
  irqdomain: i2c: Switch to irq_domain_create_linear()
  irqdomain: iio: Switch to irq_domain_create_simple()
  irqdomain: irqchip: Switch to irq_domain_create_*()
  irqdomain: mailbox: Switch to irq_domain_create_tree()
  irqdomain: memory: Switch to irq_domain_create_linear()
  irqdomain: mfd: Switch to irq_domain_create_*()
  irqdomain: mips: Switch to irq_domain_create_*()
  irqdomain: misc: Switch to irq_domain_create_simple()
  irqdomain: net: Switch to irq_domain_create_*()
  irqdomain: nios2: Switch to irq_domain_create_linear()
  irqdomain: pci: Switch to irq_domain_create_linear()
  irqdomain: pinctrl: Switch to irq_domain_create_*()
  irqdomain: platform/x86: Switch to irq_domain_create_linear()
  irqdomain: ppc: Switch to irq_domain_create_*()
  irqdomain: sh: Switch to irq_domain_create_*()
  irqdomain: soc: Switch to irq_domain_create_*()
  irqdomain: sound: Switch to irq_domain_create_linear()
  irqdomain: spmi: Switch to irq_domain_create_tree()
  irqdomain: ssb: Switch to irq_domain_create_linear()
  irqdomain: thermal: Switch to irq_domain_create_linear()
  irqdomain: ppc: Switch irq_domain_add_nomap() to use fwnode
  irqdomain: Drop irq_domain_add_*() functions
  irqdomain: ppc: Switch to irq_find_mapping()
  irqdomain: sh: Switch to irq_find_mapping()
  irqdomain: gpio: Switch to irq_find_mapping()
  irqdomain: gpu: Switch to irq_find_mapping()
  irqdomain: i2c: Switch to irq_find_mapping()
  irqdomain: irqchip: Switch to irq_find_mapping()
  irqdomain: pinctrl: Switch to irq_find_mapping()
  irqdomain: soc: Switch to irq_find_mapping()
  irqdomain: Drop irq_linear_revmap()
  irqdomain: Use irq_domain_instantiate() retvals as initializers
  irqdomain: Make struct irq_domain_info variables const
  irqdomain.h: Improve kernel-docs of functions
  docs: irq/concepts: Add commas and reflow
  docs: irq/concepts: Minor improvements
  docs: irq-domain.rst: Simple improvements
  docs: irqdomain: Update
  irqdomain.c: Fix kernel-doc and add it to Documentation

 Documentation/core-api/genericirq.rst         |   2 -
 Documentation/core-api/irq/concepts.rst       |  27 +--
 Documentation/core-api/irq/irq-domain.rst     | 202 +++++++++--------
 .../zh_CN/core-api/irq/irq-domain.rst         |   8 +-
 arch/arc/kernel/intc-arcv2.c                  |   4 +-
 arch/arc/kernel/intc-compact.c                |   7 +-
 arch/arc/kernel/mcip.c                        |   3 +-
 arch/arm/common/sa1111.c                      |   6 +-
 arch/arm/mach-exynos/suspend.c                |   5 +-
 arch/arm/mach-imx/avic.c                      |   4 +-
 arch/arm/mach-imx/gpc.c                       |   5 +-
 arch/arm/mach-imx/tzic.c                      |   4 +-
 arch/arm/mach-omap1/irq.c                     |   3 +-
 arch/arm/mach-omap2/omap-wakeupgen.c          |   5 +-
 arch/arm/mach-pxa/irq.c                       |   7 +-
 arch/arm/plat-orion/gpio.c                    |  12 +-
 arch/mips/ath25/ar2315.c                      |   4 +-
 arch/mips/ath25/ar5312.c                      |   4 +-
 arch/mips/cavium-octeon/octeon-irq.c          |  31 +--
 arch/mips/lantiq/irq.c                        |   2 +-
 arch/mips/pci/pci-ar2315.c                    |   4 +-
 arch/mips/pci/pci-rt3883.c                    |   7 +-
 arch/mips/pci/pci-xtalk-bridge.c              |   2 +-
 arch/mips/ralink/irq.c                        |   2 +-
 arch/mips/sgi-ip27/ip27-irq.c                 |   2 +-
 arch/mips/sgi-ip30/ip30-irq.c                 |   2 +-
 arch/nios2/kernel/irq.c                       |   5 +-
 arch/powerpc/kvm/book3s_hv.c                  |   2 +-
 arch/powerpc/kvm/book3s_xive.c                |   2 +-
 arch/powerpc/platforms/44x/uic.c              |   9 +-
 .../powerpc/platforms/512x/mpc5121_ads_cpld.c |   3 +-
 arch/powerpc/platforms/52xx/media5200.c       |   2 +-
 arch/powerpc/platforms/52xx/mpc52xx_gpt.c     |   6 +-
 arch/powerpc/platforms/52xx/mpc52xx_pic.c     |   6 +-
 .../platforms/85xx/socrates_fpga_pic.c        |   4 +-
 arch/powerpc/platforms/8xx/cpm1-ic.c          |   5 +-
 arch/powerpc/platforms/8xx/pic.c              |   5 +-
 arch/powerpc/platforms/amigaone/setup.c       |   2 +-
 arch/powerpc/platforms/chrp/setup.c           |   2 +-
 .../platforms/embedded6xx/flipper-pic.c       |   9 +-
 arch/powerpc/platforms/embedded6xx/hlwd-pic.c |   7 +-
 arch/powerpc/platforms/pasemi/setup.c         |   2 +-
 arch/powerpc/platforms/powermac/pic.c         |   9 +-
 arch/powerpc/platforms/powermac/smp.c         |   2 +-
 arch/powerpc/platforms/powernv/opal-irqchip.c |   3 +-
 arch/powerpc/platforms/powernv/pci-ioda.c     |   4 +-
 arch/powerpc/platforms/ps3/interrupt.c        |   4 +-
 arch/powerpc/platforms/pseries/msi.c          |   4 +-
 arch/powerpc/sysdev/cpm2_pic.c                |   5 +-
 arch/powerpc/sysdev/ehv_pic.c                 |   9 +-
 arch/powerpc/sysdev/fsl_msi.c                 |   2 +-
 arch/powerpc/sysdev/ge/ge_pic.c               |   7 +-
 arch/powerpc/sysdev/i8259.c                   |   4 +-
 arch/powerpc/sysdev/ipic.c                    |   9 +-
 arch/powerpc/sysdev/mpic.c                    |  12 +-
 arch/powerpc/sysdev/tsi108_pci.c              |   4 +-
 arch/powerpc/sysdev/xics/xics-common.c        |   2 +-
 arch/powerpc/sysdev/xive/common.c             |   4 +-
 arch/sh/boards/mach-se/7343/irq.c             |   7 +-
 arch/sh/boards/mach-se/7722/irq.c             |   4 +-
 arch/sh/boards/mach-x3proto/gpio.c            |   2 +-
 arch/um/drivers/virt-pci.c                    |  15 +-
 arch/x86/kernel/apic/io_apic.c                |   2 +-
 arch/x86/kernel/apic/vector.c                 |   2 +-
 drivers/bus/moxtet.c                          |   6 +-
 drivers/cdx/cdx_msi.c                         |   4 +-
 drivers/edac/altera_edac.c                    |   4 +-
 drivers/gpio/gpio-brcmstb.c                   |   2 +-
 drivers/gpio/gpio-davinci.c                   |   5 +-
 drivers/gpio/gpio-em.c                        |   5 +-
 drivers/gpio/gpio-grgpio.c                    |   2 +-
 drivers/gpio/gpio-idt3243x.c                  |   2 +-
 drivers/gpio/gpio-lpc18xx.c                   |   8 +-
 drivers/gpio/gpio-mvebu.c                     |   2 +-
 drivers/gpio/gpio-mxc.c                       |   2 +-
 drivers/gpio/gpio-mxs.c                       |   4 +-
 drivers/gpio/gpio-pxa.c                       |   6 +-
 drivers/gpio/gpio-rockchip.c                  |   2 +-
 drivers/gpio/gpio-sa1100.c                    |   2 +-
 drivers/gpio/gpio-sodaville.c                 |   2 +-
 drivers/gpio/gpio-tb10x.c                     |   2 +-
 drivers/gpio/gpio-twl4030.c                   |   5 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c       |   4 +-
 drivers/gpu/drm/msm/msm_mdss.c                |   2 +-
 drivers/gpu/ipu-v3/ipu-common.c               |   8 +-
 drivers/i2c/busses/i2c-cht-wc.c               |   2 +-
 drivers/i2c/muxes/i2c-mux-pca954x.c           |   8 +-
 drivers/iio/adc/stm32-adc-core.c              |   7 +-
 drivers/irqchip/exynos-combiner.c             |   2 +-
 drivers/irqchip/irq-al-fic.c                  |   2 +-
 drivers/irqchip/irq-alpine-msi.c              |   7 +-
 drivers/irqchip/irq-apple-aic.c               |   4 +-
 drivers/irqchip/irq-armada-370-xp.c           |  18 +-
 drivers/irqchip/irq-aspeed-i2c-ic.c           |   2 +-
 drivers/irqchip/irq-aspeed-intc.c             |   2 +-
 drivers/irqchip/irq-aspeed-scu-ic.c           |   2 +-
 drivers/irqchip/irq-aspeed-vic.c              |   4 +-
 drivers/irqchip/irq-ath79-misc.c              |   4 +-
 drivers/irqchip/irq-atmel-aic-common.c        |   2 +-
 drivers/irqchip/irq-bcm2712-mip.c             |   4 +-
 drivers/irqchip/irq-bcm2835.c                 |   2 +-
 drivers/irqchip/irq-bcm2836.c                 |   2 +-
 drivers/irqchip/irq-bcm6345-l1.c              |   2 +-
 drivers/irqchip/irq-bcm7038-l1.c              |   2 +-
 drivers/irqchip/irq-bcm7120-l2.c              |   2 +-
 drivers/irqchip/irq-brcmstb-l2.c              |   2 +-
 drivers/irqchip/irq-clps711x.c                |   6 +-
 drivers/irqchip/irq-crossbar.c                |   6 +-
 drivers/irqchip/irq-csky-apb-intc.c           |   2 +-
 drivers/irqchip/irq-csky-mpintc.c             |   2 +-
 drivers/irqchip/irq-davinci-cp-intc.c         |   6 +-
 drivers/irqchip/irq-digicolor.c               |   2 +-
 drivers/irqchip/irq-dw-apb-ictl.c             |   2 +-
 drivers/irqchip/irq-ftintc010.c               |   5 +-
 drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c   |   2 +-
 drivers/irqchip/irq-gic-v3.c                  |   4 +-
 drivers/irqchip/irq-goldfish-pic.c            |   7 +-
 drivers/irqchip/irq-hip04.c                   |   6 +-
 drivers/irqchip/irq-i8259.c                   |   4 +-
 drivers/irqchip/irq-idt3243x.c                |   2 +-
 drivers/irqchip/irq-imgpdc.c                  |   2 +-
 drivers/irqchip/irq-imx-gpcv2.c               |   6 +-
 drivers/irqchip/irq-imx-intmux.c              |   2 +-
 drivers/irqchip/irq-imx-irqsteer.c            |   2 +-
 drivers/irqchip/irq-ingenic-tcu.c             |   4 +-
 drivers/irqchip/irq-ingenic.c                 |   4 +-
 drivers/irqchip/irq-ixp4xx.c                  |   2 +-
 drivers/irqchip/irq-jcore-aic.c               |   5 +-
 drivers/irqchip/irq-keystone.c                |   4 +-
 drivers/irqchip/irq-lan966x-oic.c             |   2 +-
 drivers/irqchip/irq-loongarch-cpu.c           |   2 +-
 drivers/irqchip/irq-loongson-eiointc.c        |   2 +-
 drivers/irqchip/irq-loongson-htvec.c          |   2 +-
 drivers/irqchip/irq-loongson-liointc.c        |   2 +-
 drivers/irqchip/irq-loongson-pch-msi.c        |   2 +-
 drivers/irqchip/irq-loongson-pch-pic.c        |   2 +-
 drivers/irqchip/irq-lpc32xx.c                 |   4 +-
 drivers/irqchip/irq-ls-extirq.c               |   4 +-
 drivers/irqchip/irq-ls-scfg-msi.c             |  10 +-
 drivers/irqchip/irq-ls1x.c                    |   4 +-
 drivers/irqchip/irq-mchp-eic.c                |   5 +-
 drivers/irqchip/irq-meson-gpio.c              |   2 +-
 drivers/irqchip/irq-mips-cpu.c                |  13 +-
 drivers/irqchip/irq-mips-gic.c                |  15 +-
 drivers/irqchip/irq-mmp.c                     |  12 +-
 drivers/irqchip/irq-mscc-ocelot.c             |   4 +-
 drivers/irqchip/irq-mst-intc.c                |   4 +-
 drivers/irqchip/irq-mtk-cirq.c                |   5 +-
 drivers/irqchip/irq-mtk-sysirq.c              |   4 +-
 drivers/irqchip/irq-mvebu-gicp.c              |   2 +-
 drivers/irqchip/irq-mvebu-odmi.c              |   2 +-
 drivers/irqchip/irq-mvebu-pic.c               |   4 +-
 drivers/irqchip/irq-mvebu-sei.c               |   6 +-
 drivers/irqchip/irq-mxs.c                     |   4 +-
 drivers/irqchip/irq-nvic.c                    |   2 +-
 drivers/irqchip/irq-omap-intc.c               |   4 +-
 drivers/irqchip/irq-or1k-pic.c                |   4 +-
 drivers/irqchip/irq-orion.c                   |   6 +-
 drivers/irqchip/irq-owl-sirq.c                |   4 +-
 drivers/irqchip/irq-pic32-evic.c              |   8 +-
 drivers/irqchip/irq-pruss-intc.c              |   4 +-
 drivers/irqchip/irq-qcom-mpm.c                |   2 +-
 drivers/irqchip/irq-realtek-rtl.c             |   2 +-
 drivers/irqchip/irq-renesas-intc-irqpin.c     |   6 +-
 drivers/irqchip/irq-renesas-irqc.c            |   4 +-
 drivers/irqchip/irq-renesas-rza1.c            |   6 +-
 drivers/irqchip/irq-renesas-rzg2l.c           |   6 +-
 drivers/irqchip/irq-renesas-rzv2h.c           |   5 +-
 drivers/irqchip/irq-riscv-intc.c              |   2 +-
 drivers/irqchip/irq-sa11x0.c                  |   2 +-
 drivers/irqchip/irq-sni-exiu.c                |   6 +-
 drivers/irqchip/irq-sp7021-intc.c             |   4 +-
 drivers/irqchip/irq-starfive-jh8100-intc.c    |   4 +-
 drivers/irqchip/irq-stm32-exti.c              |   4 +-
 drivers/irqchip/irq-stm32mp-exti.c            |   9 +-
 drivers/irqchip/irq-sun4i.c                   |   2 +-
 drivers/irqchip/irq-sun6i-r.c                 |   4 +-
 drivers/irqchip/irq-sunxi-nmi.c               |   2 +-
 drivers/irqchip/irq-tb10x.c                   |   8 +-
 drivers/irqchip/irq-tegra.c                   |   5 +-
 drivers/irqchip/irq-ti-sci-inta.c             |  10 +-
 drivers/irqchip/irq-ti-sci-intr.c             |   7 +-
 drivers/irqchip/irq-ts4800.c                  |   2 +-
 drivers/irqchip/irq-uniphier-aidet.c          |   2 +-
 drivers/irqchip/irq-versatile-fpga.c          |   4 +-
 drivers/irqchip/irq-vf610-mscm-ir.c           |   6 +-
 drivers/irqchip/irq-vic.c                     |   5 +-
 drivers/irqchip/irq-vt8500.c                  |   2 +-
 drivers/irqchip/irq-wpcm450-aic.c             |   2 +-
 drivers/irqchip/irq-xilinx-intc.c             |   6 +-
 drivers/irqchip/irq-xtensa-mx.c               |   7 +-
 drivers/irqchip/irq-xtensa-pic.c              |   8 +-
 drivers/irqchip/irq-zevio.c                   |   4 +-
 drivers/irqchip/spear-shirq.c                 |   2 +-
 drivers/mailbox/qcom-ipcc.c                   |   4 +-
 drivers/memory/omap-gpmc.c                    |   6 +-
 drivers/mfd/88pm860x-core.c                   |   4 +-
 drivers/mfd/ab8500-core.c                     |   6 +-
 drivers/mfd/arizona-irq.c                     |   3 +-
 drivers/mfd/db8500-prcmu.c                    |   6 +-
 drivers/mfd/fsl-imx25-tsadc.c                 |   5 +-
 drivers/mfd/lp8788-irq.c                      |   2 +-
 drivers/mfd/max8925-core.c                    |   4 +-
 drivers/mfd/max8997-irq.c                     |   4 +-
 drivers/mfd/max8998-irq.c                     |   2 +-
 drivers/mfd/mt6358-irq.c                      |   6 +-
 drivers/mfd/mt6397-irq.c                      |   6 +-
 drivers/mfd/qcom-pm8xxx.c                     |   6 +-
 drivers/mfd/stmfx.c                           |   2 +-
 drivers/mfd/stmpe.c                           |   4 +-
 drivers/mfd/tc3589x.c                         |   6 +-
 drivers/mfd/tps65217.c                        |   2 +-
 drivers/mfd/tps6586x.c                        |   2 +-
 drivers/mfd/twl4030-irq.c                     |   4 +-
 drivers/mfd/twl6030-irq.c                     |   5 +-
 drivers/mfd/wm831x-irq.c                      |  15 +-
 drivers/mfd/wm8994-irq.c                      |   4 +-
 drivers/misc/hi6421v600-irq.c                 |   5 +-
 drivers/net/dsa/microchip/ksz_common.c        |   5 +-
 drivers/net/dsa/microchip/ksz_ptp.c           |   4 +-
 drivers/net/dsa/mv88e6xxx/chip.c              |   2 +-
 drivers/net/dsa/mv88e6xxx/global2.c           |   6 +-
 drivers/net/dsa/qca/ar9331.c                  |   4 +-
 drivers/net/dsa/realtek/rtl8365mb.c           |   4 +-
 drivers/net/dsa/realtek/rtl8366rb.c           |   6 +-
 .../net/ethernet/wangxun/txgbe/txgbe_irq.c    |   6 +-
 drivers/net/usb/lan78xx.c                     |   9 +-
 drivers/pci/controller/dwc/pci-dra7xx.c       |   4 +-
 drivers/pci/controller/dwc/pci-keystone.c     |   2 +-
 .../pci/controller/dwc/pcie-designware-host.c |   2 +-
 drivers/pci/controller/dwc/pcie-dw-rockchip.c |   4 +-
 drivers/pci/controller/dwc/pcie-uniphier.c    |   2 +-
 .../controller/mobiveil/pcie-mobiveil-host.c  |  11 +-
 drivers/pci/controller/pci-aardvark.c         |  14 +-
 drivers/pci/controller/pci-ftpci100.c         |   4 +-
 drivers/pci/controller/pci-mvebu.c            |   6 +-
 drivers/pci/controller/pci-xgene-msi.c        |   5 +-
 drivers/pci/controller/pcie-altera-msi.c      |   4 +-
 drivers/pci/controller/pcie-altera.c          |   2 +-
 drivers/pci/controller/pcie-brcmstb.c         |   4 +-
 drivers/pci/controller/pcie-iproc-msi.c       |   6 +-
 drivers/pci/controller/pcie-mediatek-gen3.c   |   9 +-
 drivers/pci/controller/pcie-mediatek.c        |   6 +-
 drivers/pci/controller/pcie-rockchip-host.c   |   4 +-
 drivers/pci/controller/pcie-xilinx-cpm.c      |  10 +-
 drivers/pci/controller/pcie-xilinx-dma-pl.c   |  14 +-
 drivers/pci/controller/pcie-xilinx-nwl.c      |  11 +-
 drivers/pci/controller/pcie-xilinx.c          |   5 +-
 drivers/pci/controller/plda/pcie-plda-host.c  |  16 +-
 drivers/pinctrl/mediatek/mtk-eint.c           |   5 +-
 drivers/pinctrl/pinctrl-at91-pio4.c           |   2 +-
 drivers/pinctrl/pinctrl-keembay.c             |   2 +-
 drivers/pinctrl/pinctrl-single.c              |   9 +-
 drivers/pinctrl/sunxi/pinctrl-sunxi.c         |   7 +-
 drivers/platform/x86/asus-tf103c-dock.c       |   2 +-
 drivers/remoteproc/pru_rproc.c                |   2 +-
 drivers/sh/intc/irqdomain.c                   |   5 +-
 drivers/soc/dove/pmu.c                        |   4 +-
 drivers/soc/fsl/qe/qe_ic.c                    |   8 +-
 drivers/soc/qcom/smp2p.c                      |   2 +-
 drivers/soc/qcom/smsm.c                       |   2 +-
 drivers/soc/tegra/pmc.c                       |   5 +-
 drivers/spmi/spmi-pmic-arb.c                  |   2 +-
 drivers/ssb/driver_gpio.c                     |   8 +-
 drivers/thermal/qcom/lmh.c                    |   3 +-
 drivers/thermal/tegra/soctherm.c              |   2 +-
 include/linux/gpio/driver.h                   |   5 +-
 include/linux/irqdomain.h                     | 211 ++++++++----------
 kernel/irq/irqdomain.c                        |  88 +-------
 sound/soc/codecs/wcd937x.c                    |   2 +-
 sound/soc/codecs/wcd938x.c                    |   2 +-
 sound/soc/codecs/wcd939x.c                    |   2 +-
 272 files changed, 838 insertions(+), 945 deletions(-)

Comments

Andy Shevchenko March 19, 2025, 10:21 a.m. UTC | #1
On Wed, Mar 19, 2025 at 11:30 AM Jiri Slaby (SUSE) <jirislaby@kernel.org> wrote:
>
> Hi,
>
> tl;dr if patches are agreed upon, I ask subsys maintainers to take the
> respective ones via their trees (as they are split per subsys), so that
> the IRQ tree can take only the rest. That would minimize churn/conflicts
> during merges.
>
> ===
>
> While I was reading through the irqdomain code and headers, I found some
> naming and documentation hard to follow or incomplete. Especially the
> naming of _add/_create/_instantiate functions.
>
> I tried to come up with a better state with this patchset:
> * only irq _domain_ (not host),
> * only irq_domain_create*() functions, all taking fwnode uniformly,
>
> Finally, all the irqdomain stuff is now plugged (and generated) into
> Documentation. So that everyone can walk through it at
> https://www.kernel.org/doc/ (once applied, of course).

I am all to support the idea, but in some cases I would think of a bit
more work to be done to get rid of the of_fwnode_handle(np) in favour
of dev_fwnode(dev). Note, this is based on a brief look, I haven't any
example at hand right now.
Jiri Slaby March 19, 2025, 10:32 a.m. UTC | #2
On 19. 03. 25, 11:21, Andy Shevchenko wrote:
> I am all to support the idea, but in some cases I would think of a bit
> more work to be done to get rid of the of_fwnode_handle(np) in favour
> of dev_fwnode(dev). Note, this is based on a brief look, I haven't any
> example at hand right now.

Aah, that's the helper I was looking for!

I was about to use dev->fwnode directly (see the commit log for the 
Switch to irq_domain_create_*()), but that is not guaranteed to be 
always properly set.

Will use this instead in v3.

thanks,