* [PATCH v2 00/57] irqdomain: Cleanups and Documentation
@ 2025-03-19 9:28 Jiri Slaby (SUSE)
2025-03-19 9:29 ` [PATCH v2 08/57] irqdomain: ppc: Switch to of_fwnode_handle() Jiri Slaby (SUSE)
` (8 more replies)
0 siblings, 9 replies; 15+ messages in thread
From: Jiri Slaby (SUSE) @ 2025-03-19 9:28 UTC (permalink / raw)
To: tglx
Cc: maz, linux-kernel, Jiri Slaby (SUSE), Aaro Koskinen,
Abhinav Kumar, Albert Ou, Alexandre Belloni, Alexandre Ghiti,
Alexandre Torgue, Alex Deucher, Alex Shi, Alim Akhtar,
Alvin Šipraga, Alyssa Rosenzweig, amd-gfx, Amit Kucheria,
Anatolij Gustschin, Andi Shyti, Andreas Färber,
Andreas Kemnade, Andrew Jeffery, Andrew Lunn, Andy Shevchenko,
AngeloGioacchino Del Regno, Antoine Tenart, Anton Ivanov,
Anup Patel, Arnd Bergmann, asahi, Bartosz Golaszewski,
Baruch Siach, Benjamin Herrenschmidt, Bharat Kumar Gogada,
Bjorn Andersson, Bjorn Helgaas, Borislav Petkov,
Broadcom internal kernel review list, Claudiu Beznea,
Corentin Chary, Daire McNamara, Daniel Golle, Daniel Lezcano,
Daniel Mack, Daniel Palmer, Dave Hansen, David Airlie,
David S. Miller, DENG Qingfang, Dinh Nguyen, Dmitry Baryshkov,
Dongliang Mu, Doug Berger, dri-devel, Eddie James, Eric Dumazet,
Fabio Estevam, Florian Fainelli, Geoff Levand, Greg Kroah-Hartman,
Gregory Clement, Guo Ren, Hans de Goede, Haojian Zhuang,
Haojian Zhuang, Heiko Stuebner, Herve Codina, Hou Zhiqiang,
H. Peter Anvin, Huacai Chen, Changhuang Liang, Chen-Yu Tsai,
Chester A. Unal, Christian König, Christophe Leroy,
Chris Zankel, Ilpo Järvinen, Imre Kaloz, Ingo Molnar,
Jakub Kicinski, James Morse, Janne Grunau, Janusz Krzysztofik,
Jaroslav Kysela, Jassi Brar, Jernej Skrabec, Jerome Brunet,
Jianjun Wang, Jiawen Wu, Jiaxun Yang, Jim Quinlan, Jingoo Han,
Joel Stanley, Johannes Berg, John Crispin,
John Paul Adrian Glaubitz, Jonas Bonn, Jonathan Cameron,
Jonathan Corbet, Jonathan Hunter, Jonathan Neuschäfer,
Joyce Ooi, Karthikeyan Mitran, Keerthy, Kevin Hilman,
Konrad Dybcio, Krzysztof Kozlowski, Krzysztof Wilczyński,
Kunihiko Hayashi, Lakshmi Sowjanya D, Lars-Peter Clausen,
Lee Jones, Liam Girdwood, Linus Walleij, Linus Walleij,
linux-amlogic, linux-arm-kernel, linux-arm-msm, linux-doc,
linux-edac, linux-gpio, linux-iio, linux-i2c, linux-mediatek,
linux-mips, linux-omap, linux-pci, linuxppc-dev, linux-remoteproc,
linux-riscv, linux-rpi-kernel, linux-sh, linux-snps-arc,
linux-sound, linux-stm32, linux-um, linux-wireless, loongarch,
Lorenzo Pieralisi, Ludovic Desroches, Lukasz Luba, Luke D. Jones,
Madhavan Srinivasan, Manivannan Sadhasivam, Marek Behún,
Marijn Suijten, Mark Brown, Mark-PK Tsai, Martin Blumenstingl,
Masami Hiramatsu, Mathieu Poirier, Matthias Brugger,
Mauro Carvalho Chehab, Max Filippov, Maxime Coquelin,
Mengyuan Lou, Michael Buesch, Michael Ellerman, Michal Simek,
Miodrag Dinic, Naveen N Rao, Neil Armstrong, netdev,
Nicolas Ferre, Nicolas Saenz Julienne, Nicholas Piggin,
Nikhil Agarwal, Nipun Gupta, Nishanth Menon, Pali Rohár,
Palmer Dabbelt, Paolo Abeni, Paul Cercueil, Paul Walmsley,
Pengutronix Kernel Team, Peter Rosin, Philipp Zabel,
Piotr Wojtaszczyk, platform-driver-x86, Prasad Kumpatla,
Qiang Zhao, Qin Jian, Rafael J. Wysocki, Randy Dunlap, Ray Jui,
Rengarajan Sundararajan, Richard Cochran, Richard Weinberger,
Rich Felker, Rob Clark, Robert Jarzmik, Robert Richter,
Rob Herring, Roger Quadros, Russell King, Ryan Chen, Ryder Lee,
Samuel Holland, Santosh Shilimkar, Sascha Hauer, Scott Branden,
Scott Wood, Sean Paul, Sean Wang, Sean Wang,
Sebastian Hesselbarth, Sergio Paracuellos, Shawn Guo, Shawn Lin,
Siddharth Vadapalli, Simona Vetter, Stafford Horne,
Stefan Kristiansson, Stephen Boyd, Sven Peter, Takashi Iwai,
Talel Shenhar, Tero Kristo, Thangaraj Samynathan, Thara Gopinath,
Thierry Reding, Thomas Bogendoerfer, Thomas Petazzoni, Toan Le,
Tony Lindgren, Tony Luck, UNGLinuxDriver, Uwe Kleine-König,
Vignesh Raghavendra, Vineet Gupta, Vladimir Oltean,
Vladimir Zapolskiy, WANG Xuerui, Woojung Huh, x86, Yanteng Si,
Yoshinori Sato, Zhang Rui
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(-)
--
2.49.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 08/57] irqdomain: ppc: Switch to of_fwnode_handle()
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
@ 2025-03-19 9:29 ` Jiri Slaby (SUSE)
2025-04-07 7:11 ` Jiri Slaby
2025-03-19 9:29 ` [PATCH v2 32/57] irqdomain: ppc: Switch to irq_domain_create_*() Jiri Slaby (SUSE)
` (7 subsequent siblings)
8 siblings, 1 reply; 15+ messages in thread
From: Jiri Slaby (SUSE) @ 2025-03-19 9:29 UTC (permalink / raw)
To: tglx
Cc: maz, linux-kernel, Jiri Slaby (SUSE), Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Naveen N Rao,
linuxppc-dev
of_node_to_fwnode() is irqdomain's reimplementation of the "officially"
defined of_fwnode_handle(). The former is in the process of being
removed, so use the latter instead.
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Naveen N Rao <naveen@kernel.org>
Cc: linuxppc-dev@lists.ozlabs.org
---
arch/powerpc/platforms/powernv/pci-ioda.c | 2 +-
arch/powerpc/platforms/pseries/msi.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index ae4b549b5ca0..d8ccf2c9b98a 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1897,7 +1897,7 @@ static int __init pnv_msi_allocate_domains(struct pci_controller *hose, unsigned
return -ENOMEM;
}
- hose->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(hose->dn),
+ hose->msi_domain = pci_msi_create_irq_domain(of_fwnode_handle(hose->dn),
&pnv_msi_domain_info,
hose->dev_domain);
if (!hose->msi_domain) {
diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c
index f9d80111c322..5b191f70c088 100644
--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -628,7 +628,7 @@ static int __pseries_msi_allocate_domains(struct pci_controller *phb,
return -ENOMEM;
}
- phb->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(phb->dn),
+ phb->msi_domain = pci_msi_create_irq_domain(of_fwnode_handle(phb->dn),
&pseries_msi_domain_info,
phb->dev_domain);
if (!phb->msi_domain) {
--
2.49.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 32/57] irqdomain: ppc: Switch to irq_domain_create_*()
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
2025-03-19 9:29 ` [PATCH v2 08/57] irqdomain: ppc: Switch to of_fwnode_handle() Jiri Slaby (SUSE)
@ 2025-03-19 9:29 ` Jiri Slaby (SUSE)
2025-03-21 8:43 ` Christophe Leroy
2025-03-19 9:29 ` [PATCH v2 39/57] irqdomain: ppc: Switch irq_domain_add_nomap() to use fwnode Jiri Slaby (SUSE)
` (6 subsequent siblings)
8 siblings, 1 reply; 15+ messages in thread
From: Jiri Slaby (SUSE) @ 2025-03-19 9:29 UTC (permalink / raw)
To: tglx
Cc: maz, linux-kernel, Jiri Slaby (SUSE), Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Naveen N Rao,
Anatolij Gustschin, Scott Wood, linuxppc-dev
irq_domain_add_*() interfaces are going away as being obsolete now.
Switch to the preferred irq_domain_create_*() ones. Those differ in the
node parameter: They take more generic struct fwnode_handle instead of
struct device_node. Therefore, of_fwnode_handle() is added around the
original parameter.
Note some of the users can likely use dev->fwnode directly instead of
indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not
guaranteed to be set for all, so this has to be investigated on case to
case basis (by people who can actually test with the HW).
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Naveen N Rao <naveen@kernel.org>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Scott Wood <oss@buserror.net>
Cc: linuxppc-dev@lists.ozlabs.org
---
arch/powerpc/platforms/44x/uic.c | 5 +++--
arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 3 ++-
arch/powerpc/platforms/52xx/media5200.c | 2 +-
arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 4 ++--
arch/powerpc/platforms/52xx/mpc52xx_pic.c | 2 +-
arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 2 +-
arch/powerpc/platforms/8xx/cpm1-ic.c | 3 ++-
arch/powerpc/platforms/8xx/pic.c | 3 ++-
arch/powerpc/platforms/embedded6xx/flipper-pic.c | 5 +++--
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 5 +++--
arch/powerpc/platforms/powermac/pic.c | 5 +++--
arch/powerpc/platforms/powernv/opal-irqchip.c | 3 ++-
arch/powerpc/sysdev/cpm2_pic.c | 3 ++-
arch/powerpc/sysdev/ehv_pic.c | 5 +++--
arch/powerpc/sysdev/fsl_msi.c | 2 +-
arch/powerpc/sysdev/ge/ge_pic.c | 5 +++--
arch/powerpc/sysdev/i8259.c | 4 ++--
arch/powerpc/sysdev/ipic.c | 5 +++--
arch/powerpc/sysdev/mpic.c | 6 +++---
arch/powerpc/sysdev/tsi108_pci.c | 4 ++--
arch/powerpc/sysdev/xive/common.c | 2 +-
21 files changed, 45 insertions(+), 33 deletions(-)
diff --git a/arch/powerpc/platforms/44x/uic.c b/arch/powerpc/platforms/44x/uic.c
index 31f760c2ec5d..481ec25ce78f 100644
--- a/arch/powerpc/platforms/44x/uic.c
+++ b/arch/powerpc/platforms/44x/uic.c
@@ -254,8 +254,9 @@ static struct uic * __init uic_init_one(struct device_node *node)
}
uic->dcrbase = *dcrreg;
- uic->irqhost = irq_domain_add_linear(node, NR_UIC_INTS, &uic_host_ops,
- uic);
+ uic->irqhost = irq_domain_create_linear(of_fwnode_handle(node),
+ NR_UIC_INTS, &uic_host_ops,
+ uic);
if (! uic->irqhost)
return NULL; /* FIXME: panic? */
diff --git a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
index e995eb30bf09..2cf3c6237337 100644
--- a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
+++ b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
@@ -188,7 +188,8 @@ mpc5121_ads_cpld_pic_init(void)
cpld_pic_node = of_node_get(np);
- cpld_pic_host = irq_domain_add_linear(np, 16, &cpld_pic_host_ops, NULL);
+ cpld_pic_host = irq_domain_create_linear(of_fwnode_handle(np), 16,
+ &cpld_pic_host_ops, NULL);
if (!cpld_pic_host) {
printk(KERN_ERR "CPLD PIC: failed to allocate irq host!\n");
goto end;
diff --git a/arch/powerpc/platforms/52xx/media5200.c b/arch/powerpc/platforms/52xx/media5200.c
index 19626cd42406..bc7f83cfec1d 100644
--- a/arch/powerpc/platforms/52xx/media5200.c
+++ b/arch/powerpc/platforms/52xx/media5200.c
@@ -168,7 +168,7 @@ static void __init media5200_init_irq(void)
spin_lock_init(&media5200_irq.lock);
- media5200_irq.irqhost = irq_domain_add_linear(fpga_np,
+ media5200_irq.irqhost = irq_domain_create_linear(of_fwnode_handle(fpga_np),
MEDIA5200_NUM_IRQS, &media5200_irq_ops, &media5200_irq);
if (!media5200_irq.irqhost)
goto out;
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 1ea591ec6083..f042b21b2b73 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -247,9 +247,9 @@ mpc52xx_gpt_irq_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
if (!cascade_virq)
return;
- gpt->irqhost = irq_domain_add_linear(node, 1, &mpc52xx_gpt_irq_ops, gpt);
+ gpt->irqhost = irq_domain_create_linear(of_fwnode_handle(node), 1, &mpc52xx_gpt_irq_ops, gpt);
if (!gpt->irqhost) {
- dev_err(gpt->dev, "irq_domain_add_linear() failed\n");
+ dev_err(gpt->dev, "irq_domain_create_linear() failed\n");
return;
}
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 43c881d31ca6..7ec56d3788a9 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -446,7 +446,7 @@ void __init mpc52xx_init_irq(void)
* As last step, add an irq host to translate the real
* hw irq information provided by the ofw to linux virq
*/
- mpc52xx_irqhost = irq_domain_add_linear(picnode,
+ mpc52xx_irqhost = irq_domain_create_linear(of_fwnode_handle(picnode),
MPC52xx_IRQ_HIGHTESTHWIRQ,
&mpc52xx_irqhost_ops, NULL);
diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
index 60e0b8947ce6..b4f6360830b1 100644
--- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
+++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
@@ -278,7 +278,7 @@ void __init socrates_fpga_pic_init(struct device_node *pic)
int i;
/* Setup an irq_domain structure */
- socrates_fpga_pic_irq_host = irq_domain_add_linear(pic,
+ socrates_fpga_pic_irq_host = irq_domain_create_linear(of_fwnode_handle(pic),
SOCRATES_FPGA_NUM_IRQS, &socrates_fpga_pic_host_ops, NULL);
if (socrates_fpga_pic_irq_host == NULL) {
pr_err("FPGA PIC: Unable to allocate host\n");
diff --git a/arch/powerpc/platforms/8xx/cpm1-ic.c b/arch/powerpc/platforms/8xx/cpm1-ic.c
index a18fc7c99f83..1549f6cd29f4 100644
--- a/arch/powerpc/platforms/8xx/cpm1-ic.c
+++ b/arch/powerpc/platforms/8xx/cpm1-ic.c
@@ -110,7 +110,8 @@ static int cpm_pic_probe(struct platform_device *pdev)
out_be32(&data->reg->cpic_cimr, 0);
- data->host = irq_domain_add_linear(dev->of_node, 64, &cpm_pic_host_ops, data);
+ data->host = irq_domain_create_linear(of_fwnode_handle(dev->of_node),
+ 64, &cpm_pic_host_ops, data);
if (!data->host)
return -ENODEV;
diff --git a/arch/powerpc/platforms/8xx/pic.c b/arch/powerpc/platforms/8xx/pic.c
index ea6b0e523c60..7639f28172be 100644
--- a/arch/powerpc/platforms/8xx/pic.c
+++ b/arch/powerpc/platforms/8xx/pic.c
@@ -146,7 +146,8 @@ void __init mpc8xx_pic_init(void)
if (!siu_reg)
goto out;
- mpc8xx_pic_host = irq_domain_add_linear(np, 64, &mpc8xx_pic_host_ops, NULL);
+ mpc8xx_pic_host = irq_domain_create_linear(of_fwnode_handle(np), 64,
+ &mpc8xx_pic_host_ops, NULL);
if (!mpc8xx_pic_host)
printk(KERN_ERR "MPC8xx PIC: failed to allocate irq host!\n");
diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
index 013d66304c31..a41649bf0cb8 100644
--- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
@@ -149,8 +149,9 @@ static struct irq_domain * __init flipper_pic_init(struct device_node *np)
__flipper_quiesce(io_base);
- irq_domain = irq_domain_add_linear(np, FLIPPER_NR_IRQS,
- &flipper_irq_domain_ops, io_base);
+ irq_domain = irq_domain_create_linear(of_fwnode_handle(np),
+ FLIPPER_NR_IRQS,
+ &flipper_irq_domain_ops, io_base);
if (!irq_domain) {
pr_err("failed to allocate irq_domain\n");
return NULL;
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index 4d2d92de30af..9abb3da36ba5 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -175,8 +175,9 @@ static struct irq_domain *__init hlwd_pic_init(struct device_node *np)
__hlwd_quiesce(io_base);
- irq_domain = irq_domain_add_linear(np, HLWD_NR_IRQS,
- &hlwd_irq_domain_ops, io_base);
+ irq_domain = irq_domain_create_linear(of_fwnode_handle(np),
+ HLWD_NR_IRQS,
+ &hlwd_irq_domain_ops, io_base);
if (!irq_domain) {
pr_err("failed to allocate irq_domain\n");
iounmap(io_base);
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 03a7c51f2645..2eddc8bff7ab 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -327,8 +327,9 @@ static void __init pmac_pic_probe_oldstyle(void)
/*
* Allocate an irq host
*/
- pmac_pic_host = irq_domain_add_linear(master, max_irqs,
- &pmac_pic_host_ops, NULL);
+ pmac_pic_host = irq_domain_create_linear(of_fwnode_handle(master),
+ max_irqs,
+ &pmac_pic_host_ops, NULL);
BUG_ON(pmac_pic_host == NULL);
irq_set_default_domain(pmac_pic_host);
diff --git a/arch/powerpc/platforms/powernv/opal-irqchip.c b/arch/powerpc/platforms/powernv/opal-irqchip.c
index d92759c21fae..e180bd8e1400 100644
--- a/arch/powerpc/platforms/powernv/opal-irqchip.c
+++ b/arch/powerpc/platforms/powernv/opal-irqchip.c
@@ -191,7 +191,8 @@ int __init opal_event_init(void)
* fall back to the legacy method (opal_event_request(...))
* anyway. */
dn = of_find_compatible_node(NULL, NULL, "ibm,opal-event");
- opal_event_irqchip.domain = irq_domain_add_linear(dn, MAX_NUM_EVENTS,
+ opal_event_irqchip.domain = irq_domain_create_linear(of_fwnode_handle(dn),
+ MAX_NUM_EVENTS,
&opal_event_domain_ops, &opal_event_irqchip);
of_node_put(dn);
if (!opal_event_irqchip.domain) {
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index e14493685fe8..c63d72f17a3e 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -259,7 +259,8 @@ void cpm2_pic_init(struct device_node *node)
out_be32(&cpm2_intctl->ic_scprrl, 0x05309770);
/* create a legacy host */
- cpm2_pic_host = irq_domain_add_linear(node, 64, &cpm2_pic_host_ops, NULL);
+ cpm2_pic_host = irq_domain_create_linear(of_fwnode_handle(node), 64,
+ &cpm2_pic_host_ops, NULL);
if (cpm2_pic_host == NULL) {
printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n");
return;
diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
index fb502b72fca1..4ee8d36ca647 100644
--- a/arch/powerpc/sysdev/ehv_pic.c
+++ b/arch/powerpc/sysdev/ehv_pic.c
@@ -269,8 +269,9 @@ void __init ehv_pic_init(void)
return;
}
- ehv_pic->irqhost = irq_domain_add_linear(np, NR_EHV_PIC_INTS,
- &ehv_pic_host_ops, ehv_pic);
+ ehv_pic->irqhost = irq_domain_create_linear(of_fwnode_handle(np),
+ NR_EHV_PIC_INTS,
+ &ehv_pic_host_ops, ehv_pic);
if (!ehv_pic->irqhost) {
of_node_put(np);
kfree(ehv_pic);
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index 7b9a5ea9cad9..4fe8a7b1b288 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -412,7 +412,7 @@ static int fsl_of_msi_probe(struct platform_device *dev)
}
platform_set_drvdata(dev, msi);
- msi->irqhost = irq_domain_add_linear(dev->dev.of_node,
+ msi->irqhost = irq_domain_create_linear(of_fwnode_handle(dev->dev.of_node),
NR_MSI_IRQS_MAX, &fsl_msi_host_ops, msi);
if (msi->irqhost == NULL) {
diff --git a/arch/powerpc/sysdev/ge/ge_pic.c b/arch/powerpc/sysdev/ge/ge_pic.c
index a6c424680c37..5b1f8dc3c960 100644
--- a/arch/powerpc/sysdev/ge/ge_pic.c
+++ b/arch/powerpc/sysdev/ge/ge_pic.c
@@ -214,8 +214,9 @@ void __init gef_pic_init(struct device_node *np)
}
/* Setup an irq_domain structure */
- gef_pic_irq_host = irq_domain_add_linear(np, GEF_PIC_NUM_IRQS,
- &gef_pic_host_ops, NULL);
+ gef_pic_irq_host = irq_domain_create_linear(of_fwnode_handle(np),
+ GEF_PIC_NUM_IRQS,
+ &gef_pic_host_ops, NULL);
if (gef_pic_irq_host == NULL)
return;
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c
index 06e391485da7..99bb2b916949 100644
--- a/arch/powerpc/sysdev/i8259.c
+++ b/arch/powerpc/sysdev/i8259.c
@@ -260,8 +260,8 @@ void i8259_init(struct device_node *node, unsigned long intack_addr)
raw_spin_unlock_irqrestore(&i8259_lock, flags);
/* create a legacy host */
- i8259_host = irq_domain_add_legacy(node, NR_IRQS_LEGACY, 0, 0,
- &i8259_host_ops, NULL);
+ i8259_host = irq_domain_create_legacy(of_fwnode_handle(node), NR_IRQS_LEGACY, 0, 0,
+ &i8259_host_ops, NULL);
if (i8259_host == NULL) {
printk(KERN_ERR "i8259: failed to allocate irq host !\n");
return;
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index a35be0232978..f7b415ebb71c 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -711,8 +711,9 @@ struct ipic * __init ipic_init(struct device_node *node, unsigned int flags)
if (ipic == NULL)
return NULL;
- ipic->irqhost = irq_domain_add_linear(node, NR_IPIC_INTS,
- &ipic_host_ops, ipic);
+ ipic->irqhost = irq_domain_create_linear(of_fwnode_handle(node),
+ NR_IPIC_INTS,
+ &ipic_host_ops, ipic);
if (ipic->irqhost == NULL) {
kfree(ipic);
return NULL;
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 4afbab83a2e2..3de090159a1b 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1483,9 +1483,9 @@ struct mpic * __init mpic_alloc(struct device_node *node,
mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1);
mpic->isu_mask = (1 << mpic->isu_shift) - 1;
- mpic->irqhost = irq_domain_add_linear(mpic->node,
- intvec_top,
- &mpic_host_ops, mpic);
+ mpic->irqhost = irq_domain_create_linear(of_fwnode_handle(mpic->node),
+ intvec_top,
+ &mpic_host_ops, mpic);
/*
* FIXME: The code leaks the MPIC object and mappings here; this
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
index 0e42f7bad7db..07d0f6a83879 100644
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
@@ -404,8 +404,8 @@ void __init tsi108_pci_int_init(struct device_node *node)
{
DBG("Tsi108_pci_int_init: initializing PCI interrupts\n");
- pci_irq_host = irq_domain_add_legacy(node, NR_IRQS_LEGACY, 0, 0,
- &pci_irq_domain_ops, NULL);
+ pci_irq_host = irq_domain_create_legacy(of_fwnode_handle(node), NR_IRQS_LEGACY, 0, 0,
+ &pci_irq_domain_ops, NULL);
if (pci_irq_host == NULL) {
printk(KERN_ERR "pci_irq_host: failed to allocate irq domain!\n");
return;
diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c
index dc2e61837396..f10592405024 100644
--- a/arch/powerpc/sysdev/xive/common.c
+++ b/arch/powerpc/sysdev/xive/common.c
@@ -1464,7 +1464,7 @@ static const struct irq_domain_ops xive_irq_domain_ops = {
static void __init xive_init_host(struct device_node *np)
{
- xive_irq_domain = irq_domain_add_tree(np, &xive_irq_domain_ops, NULL);
+ xive_irq_domain = irq_domain_create_tree(of_fwnode_handle(np), &xive_irq_domain_ops, NULL);
if (WARN_ON(xive_irq_domain == NULL))
return;
irq_set_default_domain(xive_irq_domain);
--
2.49.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 39/57] irqdomain: ppc: Switch irq_domain_add_nomap() to use fwnode
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
2025-03-19 9:29 ` [PATCH v2 08/57] irqdomain: ppc: Switch to of_fwnode_handle() Jiri Slaby (SUSE)
2025-03-19 9:29 ` [PATCH v2 32/57] irqdomain: ppc: Switch to irq_domain_create_*() Jiri Slaby (SUSE)
@ 2025-03-19 9:29 ` Jiri Slaby (SUSE)
2025-03-19 9:29 ` [PATCH v2 41/57] irqdomain: ppc: Switch to irq_find_mapping() Jiri Slaby (SUSE)
` (5 subsequent siblings)
8 siblings, 0 replies; 15+ messages in thread
From: Jiri Slaby (SUSE) @ 2025-03-19 9:29 UTC (permalink / raw)
To: tglx
Cc: maz, linux-kernel, Jiri Slaby (SUSE), Alex Shi, Yanteng Si,
Dongliang Mu, Madhavan Srinivasan, Michael Ellerman,
Nicholas Piggin, Christophe Leroy, Naveen N Rao, Geoff Levand,
linuxppc-dev, Jonathan Corbet, linux-doc
All irq_domain_add_*() functions are going away. PowerPC is the only
user of irq_domain_add_nomap() and there is no irq_domain_create_nomap()
complement.
Therefore, to align with the rest of kernel, rename
irq_domain_add_nomap() to irq_domain_create_nomap() and accept
fwnode_handle instead of device_node.
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Alex Shi <alexs@kernel.org>
Cc: Yanteng Si <si.yanteng@linux.dev>
Cc: Dongliang Mu <dzm91@hust.edu.cn>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Naveen N Rao <naveen@kernel.org>
Cc: Geoff Levand <geoff@infradead.org>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org
---
Documentation/core-api/irq/irq-domain.rst | 2 +-
Documentation/translations/zh_CN/core-api/irq/irq-domain.rst | 2 +-
arch/powerpc/platforms/powermac/smp.c | 2 +-
arch/powerpc/platforms/ps3/interrupt.c | 2 +-
include/linux/irqdomain.h | 4 ++--
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Documentation/core-api/irq/irq-domain.rst b/Documentation/core-api/irq/irq-domain.rst
index f88a6ee67a35..44f4ba5480df 100644
--- a/Documentation/core-api/irq/irq-domain.rst
+++ b/Documentation/core-api/irq/irq-domain.rst
@@ -141,7 +141,7 @@ No Map
::
- irq_domain_add_nomap()
+ irq_domain_create_nomap()
The No Map mapping is to be used when the hwirq number is
programmable in the hardware. In this case it is best to program the
diff --git a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
index 9174fce12c1b..ecb23cfbc9fc 100644
--- a/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
+++ b/Documentation/translations/zh_CN/core-api/irq/irq-domain.rst
@@ -124,7 +124,7 @@ irq_domain_add_tree()和irq_domain_create_tree()在功能上是等价的,除
::
- irq_domain_add_nomap()
+ irq_domain_create_nomap()
当硬件中的hwirq号是可编程的时候,就可以采用无映射类型。 在这种情况下,最好将
Linux IRQ号编入硬件本身,这样就不需要映射了。 调用irq_create_direct_mapping()
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 09e7fe24fac1..88e92af8acf9 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -190,7 +190,7 @@ static int __init psurge_secondary_ipi_init(void)
{
int rc = -ENOMEM;
- psurge_host = irq_domain_add_nomap(NULL, ~0, &psurge_host_ops, NULL);
+ psurge_host = irq_domain_create_nomap(NULL, ~0, &psurge_host_ops, NULL);
if (psurge_host)
psurge_secondary_virq = irq_create_direct_mapping(psurge_host);
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
index 95e96bd61a20..a4ad4b49eef7 100644
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
@@ -743,7 +743,7 @@ void __init ps3_init_IRQ(void)
unsigned cpu;
struct irq_domain *host;
- host = irq_domain_add_nomap(NULL, PS3_PLUG_MAX + 1, &ps3_host_ops, NULL);
+ host = irq_domain_create_nomap(NULL, PS3_PLUG_MAX + 1, &ps3_host_ops, NULL);
irq_set_default_domain(host);
for_each_possible_cpu(cpu) {
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index 1480951a690b..984d0188f9ec 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -431,13 +431,13 @@ static inline struct irq_domain *irq_domain_add_linear(struct device_node *of_no
}
#ifdef CONFIG_IRQ_DOMAIN_NOMAP
-static inline struct irq_domain *irq_domain_add_nomap(struct device_node *of_node,
+static inline struct irq_domain *irq_domain_create_nomap(struct fwnode_handle *fwnode,
unsigned int max_irq,
const struct irq_domain_ops *ops,
void *host_data)
{
struct irq_domain_info info = {
- .fwnode = of_fwnode_handle(of_node),
+ .fwnode = fwnode,
.hwirq_max = max_irq,
.direct_max = max_irq,
.ops = ops,
--
2.49.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 41/57] irqdomain: ppc: Switch to irq_find_mapping()
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
` (2 preceding siblings ...)
2025-03-19 9:29 ` [PATCH v2 39/57] irqdomain: ppc: Switch irq_domain_add_nomap() to use fwnode Jiri Slaby (SUSE)
@ 2025-03-19 9:29 ` Jiri Slaby (SUSE)
2025-03-20 18:14 ` Christophe Leroy
2025-03-19 9:29 ` [PATCH v2 48/57] irqdomain: soc: " Jiri Slaby (SUSE)
` (4 subsequent siblings)
8 siblings, 1 reply; 15+ messages in thread
From: Jiri Slaby (SUSE) @ 2025-03-19 9:29 UTC (permalink / raw)
To: tglx
Cc: maz, linux-kernel, Jiri Slaby (SUSE), Madhavan Srinivasan,
Michael Ellerman, Nicholas Piggin, Christophe Leroy, Naveen N Rao,
Anatolij Gustschin, Scott Wood, linuxppc-dev
irq_linear_revmap() is deprecated, so remove all its uses and supersede
them by an identical call to irq_find_mapping().
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Naveen N Rao <naveen@kernel.org>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Scott Wood <oss@buserror.net>
Cc: linuxppc-dev@lists.ozlabs.org
---
arch/powerpc/platforms/44x/uic.c | 2 +-
arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 2 +-
arch/powerpc/platforms/52xx/mpc52xx_pic.c | 2 +-
arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 2 +-
arch/powerpc/platforms/8xx/cpm1-ic.c | 2 +-
arch/powerpc/platforms/8xx/pic.c | 2 +-
arch/powerpc/platforms/embedded6xx/flipper-pic.c | 2 +-
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 2 +-
arch/powerpc/platforms/powermac/pic.c | 2 +-
arch/powerpc/sysdev/cpm2_pic.c | 2 +-
arch/powerpc/sysdev/ehv_pic.c | 2 +-
arch/powerpc/sysdev/ge/ge_pic.c | 2 +-
arch/powerpc/sysdev/ipic.c | 2 +-
arch/powerpc/sysdev/mpic.c | 4 ++--
14 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/arch/powerpc/platforms/44x/uic.c b/arch/powerpc/platforms/44x/uic.c
index 481ec25ce78f..85daf841fd3f 100644
--- a/arch/powerpc/platforms/44x/uic.c
+++ b/arch/powerpc/platforms/44x/uic.c
@@ -328,5 +328,5 @@ unsigned int uic_get_irq(void)
msr = mfdcr(primary_uic->dcrbase + UIC_MSR);
src = 32 - ffs(msr);
- return irq_linear_revmap(primary_uic->irqhost, src);
+ return irq_find_mapping(primary_uic->irqhost, src);
}
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index f042b21b2b73..3dbe5a5e5d1f 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -369,7 +369,7 @@ struct mpc52xx_gpt_priv *mpc52xx_gpt_from_irq(int irq)
mutex_lock(&mpc52xx_gpt_list_mutex);
list_for_each(pos, &mpc52xx_gpt_list) {
gpt = container_of(pos, struct mpc52xx_gpt_priv, list);
- if (gpt->irqhost && irq == irq_linear_revmap(gpt->irqhost, 0)) {
+ if (gpt->irqhost && irq == irq_find_mapping(gpt->irqhost, 0)) {
mutex_unlock(&mpc52xx_gpt_list_mutex);
return gpt;
}
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 7ec56d3788a9..eb6a4e745c08 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -515,5 +515,5 @@ unsigned int mpc52xx_get_irq(void)
return 0;
}
- return irq_linear_revmap(mpc52xx_irqhost, irq);
+ return irq_find_mapping(mpc52xx_irqhost, irq);
}
diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
index b4f6360830b1..4b69fb321a68 100644
--- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
+++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
@@ -83,7 +83,7 @@ static inline unsigned int socrates_fpga_pic_get_irq(unsigned int irq)
if (cause >> (i + 16))
break;
}
- return irq_linear_revmap(socrates_fpga_pic_irq_host,
+ return irq_find_mapping(socrates_fpga_pic_irq_host,
(irq_hw_number_t)i);
}
diff --git a/arch/powerpc/platforms/8xx/cpm1-ic.c b/arch/powerpc/platforms/8xx/cpm1-ic.c
index 1549f6cd29f4..a49d4a9ab3bc 100644
--- a/arch/powerpc/platforms/8xx/cpm1-ic.c
+++ b/arch/powerpc/platforms/8xx/cpm1-ic.c
@@ -59,7 +59,7 @@ static int cpm_get_irq(struct irq_desc *desc)
cpm_vec = in_be16(&data->reg->cpic_civr);
cpm_vec >>= 11;
- return irq_linear_revmap(data->host, cpm_vec);
+ return irq_find_mapping(data->host, cpm_vec);
}
static void cpm_cascade(struct irq_desc *desc)
diff --git a/arch/powerpc/platforms/8xx/pic.c b/arch/powerpc/platforms/8xx/pic.c
index 7639f28172be..933d6ab7f512 100644
--- a/arch/powerpc/platforms/8xx/pic.c
+++ b/arch/powerpc/platforms/8xx/pic.c
@@ -80,7 +80,7 @@ unsigned int mpc8xx_get_irq(void)
if (irq == PIC_VEC_SPURRIOUS)
return 0;
- return irq_linear_revmap(mpc8xx_pic_host, irq);
+ return irq_find_mapping(mpc8xx_pic_host, irq);
}
diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
index a41649bf0cb8..91a8f0a7086e 100644
--- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
@@ -173,7 +173,7 @@ unsigned int flipper_pic_get_irq(void)
return 0; /* no more IRQs pending */
irq = __ffs(irq_status);
- return irq_linear_revmap(flipper_irq_host, irq);
+ return irq_find_mapping(flipper_irq_host, irq);
}
/*
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index 9abb3da36ba5..b57e87b0b3ce 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -190,7 +190,7 @@ static struct irq_domain *__init hlwd_pic_init(struct device_node *np)
unsigned int hlwd_pic_get_irq(void)
{
unsigned int hwirq = __hlwd_pic_get_irq(hlwd_irq_host);
- return hwirq ? irq_linear_revmap(hlwd_irq_host, hwirq) : 0;
+ return hwirq ? irq_find_mapping(hlwd_irq_host, hwirq) : 0;
}
/*
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 2eddc8bff7ab..c37783a03d25 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -250,7 +250,7 @@ static unsigned int pmac_pic_get_irq(void)
raw_spin_unlock_irqrestore(&pmac_pic_lock, flags);
if (unlikely(irq < 0))
return 0;
- return irq_linear_revmap(pmac_pic_host, irq);
+ return irq_find_mapping(pmac_pic_host, irq);
}
static int pmac_pic_host_match(struct irq_domain *h, struct device_node *node,
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index c63d72f17a3e..4a59ed1d62ce 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -207,7 +207,7 @@ unsigned int cpm2_get_irq(void)
if (irq == 0)
return(-1);
- return irq_linear_revmap(cpm2_pic_host, irq);
+ return irq_find_mapping(cpm2_pic_host, irq);
}
static int cpm2_pic_host_map(struct irq_domain *h, unsigned int virq,
diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
index 4ee8d36ca647..b6f9774038e1 100644
--- a/arch/powerpc/sysdev/ehv_pic.c
+++ b/arch/powerpc/sysdev/ehv_pic.c
@@ -175,7 +175,7 @@ unsigned int ehv_pic_get_irq(void)
* this will also setup revmap[] in the slow path for the first
* time, next calls will always use fast path by indexing revmap
*/
- return irq_linear_revmap(global_ehv_pic->irqhost, irq);
+ return irq_find_mapping(global_ehv_pic->irqhost, irq);
}
static int ehv_pic_host_match(struct irq_domain *h, struct device_node *node,
diff --git a/arch/powerpc/sysdev/ge/ge_pic.c b/arch/powerpc/sysdev/ge/ge_pic.c
index 5b1f8dc3c960..0bc3f0b36528 100644
--- a/arch/powerpc/sysdev/ge/ge_pic.c
+++ b/arch/powerpc/sysdev/ge/ge_pic.c
@@ -245,7 +245,7 @@ unsigned int gef_pic_get_irq(void)
if (active & (0x1 << hwirq))
break;
}
- virq = irq_linear_revmap(gef_pic_irq_host,
+ virq = irq_find_mapping(gef_pic_irq_host,
(irq_hw_number_t)hwirq);
}
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index f7b415ebb71c..70be2105865d 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -801,7 +801,7 @@ unsigned int ipic_get_irq(void)
if (irq == 0) /* 0 --> no irq is pending */
return 0;
- return irq_linear_revmap(primary_ipic->irqhost, irq);
+ return irq_find_mapping(primary_ipic->irqhost, irq);
}
#ifdef CONFIG_SUSPEND
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 3de090159a1b..787a88efdb35 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1785,7 +1785,7 @@ static unsigned int _mpic_get_one_irq(struct mpic *mpic, int reg)
return 0;
}
- return irq_linear_revmap(mpic->irqhost, src);
+ return irq_find_mapping(mpic->irqhost, src);
}
unsigned int mpic_get_one_irq(struct mpic *mpic)
@@ -1823,7 +1823,7 @@ unsigned int mpic_get_coreint_irq(void)
return 0;
}
- return irq_linear_revmap(mpic->irqhost, src);
+ return irq_find_mapping(mpic->irqhost, src);
#else
return 0;
#endif
--
2.49.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 48/57] irqdomain: soc: Switch to irq_find_mapping()
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
` (3 preceding siblings ...)
2025-03-19 9:29 ` [PATCH v2 41/57] irqdomain: ppc: Switch to irq_find_mapping() Jiri Slaby (SUSE)
@ 2025-03-19 9:29 ` Jiri Slaby (SUSE)
2025-03-19 10:21 ` [PATCH v2 00/57] irqdomain: Cleanups and Documentation Andy Shevchenko
` (3 subsequent siblings)
8 siblings, 0 replies; 15+ messages in thread
From: Jiri Slaby (SUSE) @ 2025-03-19 9:29 UTC (permalink / raw)
To: tglx
Cc: maz, linux-kernel, Jiri Slaby (SUSE), Qiang Zhao,
Christophe Leroy, linuxppc-dev, linux-arm-kernel
irq_linear_revmap() is deprecated, so remove all its uses and supersede
them by an identical call to irq_find_mapping().
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Qiang Zhao <qiang.zhao@nxp.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-arm-kernel@lists.infradead.org
---
drivers/soc/fsl/qe/qe_ic.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/soc/fsl/qe/qe_ic.c b/drivers/soc/fsl/qe/qe_ic.c
index e5831c298ad6..e4b6ff2cc76b 100644
--- a/drivers/soc/fsl/qe/qe_ic.c
+++ b/drivers/soc/fsl/qe/qe_ic.c
@@ -344,7 +344,7 @@ static unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic)
if (irq == 0)
return 0;
- return irq_linear_revmap(qe_ic->irqhost, irq);
+ return irq_find_mapping(qe_ic->irqhost, irq);
}
/* Return an interrupt vector or 0 if no interrupt is pending. */
@@ -360,7 +360,7 @@ static unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)
if (irq == 0)
return 0;
- return irq_linear_revmap(qe_ic->irqhost, irq);
+ return irq_find_mapping(qe_ic->irqhost, irq);
}
static void qe_ic_cascade_low(struct irq_desc *desc)
--
2.49.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 00/57] irqdomain: Cleanups and Documentation
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
` (4 preceding siblings ...)
2025-03-19 9:29 ` [PATCH v2 48/57] irqdomain: soc: " Jiri Slaby (SUSE)
@ 2025-03-19 10:21 ` Andy Shevchenko
2025-03-19 10:32 ` Jiri Slaby
2025-03-20 15:18 ` (subset) " Mark Brown
` (2 subsequent siblings)
8 siblings, 1 reply; 15+ messages in thread
From: Andy Shevchenko @ 2025-03-19 10:21 UTC (permalink / raw)
To: Jiri Slaby (SUSE)
Cc: tglx, maz, linux-kernel, Aaro Koskinen, Abhinav Kumar, Albert Ou,
Alexandre Belloni, Alexandre Ghiti, Alexandre Torgue,
Alex Deucher, Alex Shi, Alim Akhtar, Alvin Šipraga,
Alyssa Rosenzweig, amd-gfx, Amit Kucheria, Anatolij Gustschin,
Andi Shyti, Andreas Färber, Andreas Kemnade, Andrew Jeffery,
Andrew Lunn, Andy Shevchenko, AngeloGioacchino Del Regno,
Antoine Tenart, Anton Ivanov, Anup Patel, Arnd Bergmann, asahi,
Bartosz Golaszewski, Baruch Siach, Benjamin Herrenschmidt,
Bharat Kumar Gogada, Bjorn Andersson, Bjorn Helgaas,
Borislav Petkov, Broadcom internal kernel review list,
Claudiu Beznea, Corentin Chary, Daire McNamara, Daniel Golle,
Daniel Lezcano, Daniel Mack, Daniel Palmer, Dave Hansen,
David Airlie, David S. Miller, DENG Qingfang, Dinh Nguyen,
Dmitry Baryshkov, Dongliang Mu, Doug Berger, dri-devel,
Eddie James, Eric Dumazet, Fabio Estevam, Florian Fainelli,
Geoff Levand, Greg Kroah-Hartman, Gregory Clement, Guo Ren,
Hans de Goede, Haojian Zhuang, Haojian Zhuang, Heiko Stuebner,
Herve Codina, Hou Zhiqiang, H. Peter Anvin, Huacai Chen,
Changhuang Liang, Chen-Yu Tsai, Chester A. Unal,
Christian König, Christophe Leroy, Chris Zankel,
Ilpo Järvinen, Imre Kaloz, Ingo Molnar, Jakub Kicinski,
James Morse, Janne Grunau, Janusz Krzysztofik, Jaroslav Kysela,
Jassi Brar, Jernej Skrabec, Jerome Brunet, Jianjun Wang,
Jiawen Wu, Jiaxun Yang, Jim Quinlan, Jingoo Han, Joel Stanley,
Johannes Berg, John Crispin, John Paul Adrian Glaubitz,
Jonas Bonn, Jonathan Cameron, Jonathan Corbet, Jonathan Hunter,
Jonathan Neuschäfer, Joyce Ooi, Karthikeyan Mitran, Keerthy,
Kevin Hilman, Konrad Dybcio, Krzysztof Kozlowski,
Krzysztof Wilczyński, Kunihiko Hayashi, Lakshmi Sowjanya D,
Lars-Peter Clausen, Lee Jones, Liam Girdwood, Linus Walleij,
Linus Walleij, linux-amlogic, linux-arm-kernel, linux-arm-msm,
linux-doc, linux-edac, linux-gpio, linux-iio, linux-i2c,
linux-mediatek, linux-mips, linux-omap, linux-pci, linuxppc-dev,
linux-remoteproc, linux-riscv, linux-rpi-kernel, linux-sh,
linux-snps-arc, linux-sound, linux-stm32, linux-um,
linux-wireless, loongarch, Lorenzo Pieralisi, Ludovic Desroches,
Lukasz Luba, Luke D. Jones, Madhavan Srinivasan,
Manivannan Sadhasivam, Marek Behún, Marijn Suijten,
Mark Brown, Mark-PK Tsai, Martin Blumenstingl, Masami Hiramatsu,
Mathieu Poirier, Matthias Brugger, Mauro Carvalho Chehab,
Max Filippov, Maxime Coquelin, Mengyuan Lou, Michael Buesch,
Michael Ellerman, Michal Simek, Miodrag Dinic, Naveen N Rao,
Neil Armstrong, netdev, Nicolas Ferre, Nicolas Saenz Julienne,
Nicholas Piggin, Nikhil Agarwal, Nipun Gupta, Nishanth Menon,
Pali Rohár, Palmer Dabbelt, Paolo Abeni, Paul Cercueil,
Paul Walmsley, Pengutronix Kernel Team, Peter Rosin,
Philipp Zabel, Piotr Wojtaszczyk, platform-driver-x86,
Prasad Kumpatla, Qiang Zhao, Qin Jian, Rafael J. Wysocki,
Randy Dunlap, Ray Jui, Rengarajan Sundararajan, Richard Cochran,
Richard Weinberger, Rich Felker, Rob Clark, Robert Jarzmik,
Robert Richter, Rob Herring, Roger Quadros, Russell King,
Ryan Chen, Ryder Lee, Samuel Holland, Santosh Shilimkar,
Sascha Hauer, Scott Branden, Scott Wood, Sean Paul, Sean Wang,
Sean Wang, Sebastian Hesselbarth, Sergio Paracuellos, Shawn Guo,
Shawn Lin, Siddharth Vadapalli, Simona Vetter, Stafford Horne,
Stefan Kristiansson, Stephen Boyd, Sven Peter, Takashi Iwai,
Talel Shenhar, Tero Kristo, Thangaraj Samynathan, Thara Gopinath,
Thierry Reding, Thomas Bogendoerfer, Thomas Petazzoni, Toan Le,
Tony Lindgren, Tony Luck, UNGLinuxDriver, Uwe Kleine-König,
Vignesh Raghavendra, Vineet Gupta, Vladimir Oltean,
Vladimir Zapolskiy, WANG Xuerui, Woojung Huh, x86, Yanteng Si,
Yoshinori Sato, Zhang Rui
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.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 00/57] irqdomain: Cleanups and Documentation
2025-03-19 10:21 ` [PATCH v2 00/57] irqdomain: Cleanups and Documentation Andy Shevchenko
@ 2025-03-19 10:32 ` Jiri Slaby
0 siblings, 0 replies; 15+ messages in thread
From: Jiri Slaby @ 2025-03-19 10:32 UTC (permalink / raw)
To: Andy Shevchenko
Cc: tglx, maz, linux-kernel, Aaro Koskinen, Abhinav Kumar, Albert Ou,
Alexandre Belloni, Alexandre Ghiti, Alexandre Torgue,
Alex Deucher, Alex Shi, Alim Akhtar, Alvin Šipraga,
Alyssa Rosenzweig, amd-gfx, Amit Kucheria, Anatolij Gustschin,
Andi Shyti, Andreas Färber, Andreas Kemnade, Andrew Jeffery,
Andrew Lunn, Andy Shevchenko, AngeloGioacchino Del Regno,
Antoine Tenart, Anton Ivanov, Anup Patel, Arnd Bergmann, asahi,
Bartosz Golaszewski, Baruch Siach, Benjamin Herrenschmidt,
Bharat Kumar Gogada, Bjorn Andersson, Bjorn Helgaas,
Borislav Petkov, Broadcom internal kernel review list,
Claudiu Beznea, Corentin Chary, Daire McNamara, Daniel Golle,
Daniel Lezcano, Daniel Mack, Daniel Palmer, Dave Hansen,
David Airlie, David S. Miller, DENG Qingfang, Dinh Nguyen,
Dmitry Baryshkov, Dongliang Mu, Doug Berger, dri-devel,
Eddie James, Eric Dumazet, Fabio Estevam, Florian Fainelli,
Geoff Levand, Greg Kroah-Hartman, Gregory Clement, Guo Ren,
Hans de Goede, Haojian Zhuang, Haojian Zhuang, Heiko Stuebner,
Herve Codina, Hou Zhiqiang, H. Peter Anvin, Huacai Chen,
Changhuang Liang, Chen-Yu Tsai, Chester A. Unal,
Christian König, Christophe Leroy, Chris Zankel,
Ilpo Järvinen, Imre Kaloz, Ingo Molnar, Jakub Kicinski,
James Morse, Janne Grunau, Janusz Krzysztofik, Jaroslav Kysela,
Jassi Brar, Jernej Skrabec, Jerome Brunet, Jianjun Wang,
Jiawen Wu, Jiaxun Yang, Jim Quinlan, Jingoo Han, Joel Stanley,
Johannes Berg, John Crispin, John Paul Adrian Glaubitz,
Jonas Bonn, Jonathan Cameron, Jonathan Corbet, Jonathan Hunter,
Jonathan Neuschäfer, Joyce Ooi, Karthikeyan Mitran, Keerthy,
Kevin Hilman, Konrad Dybcio, Krzysztof Kozlowski,
Krzysztof Wilczyński, Kunihiko Hayashi, Lakshmi Sowjanya D,
Lars-Peter Clausen, Lee Jones, Liam Girdwood, Linus Walleij,
Linus Walleij, linux-amlogic, linux-arm-kernel, linux-arm-msm,
linux-doc, linux-edac, linux-gpio, linux-iio, linux-i2c,
linux-mediatek, linux-mips, linux-omap, linux-pci, linuxppc-dev,
linux-remoteproc, linux-riscv, linux-rpi-kernel, linux-sh,
linux-snps-arc, linux-sound, linux-stm32, linux-um,
linux-wireless, loongarch, Lorenzo Pieralisi, Ludovic Desroches,
Lukasz Luba, Luke D. Jones, Madhavan Srinivasan,
Manivannan Sadhasivam, Marek Behún, Marijn Suijten,
Mark Brown, Mark-PK Tsai, Martin Blumenstingl, Masami Hiramatsu,
Mathieu Poirier, Matthias Brugger, Mauro Carvalho Chehab,
Max Filippov, Maxime Coquelin, Mengyuan Lou, Michael Buesch,
Michael Ellerman, Michal Simek, Miodrag Dinic, Naveen N Rao,
Neil Armstrong, netdev, Nicolas Ferre, Nicolas Saenz Julienne,
Nicholas Piggin, Nikhil Agarwal, Nipun Gupta, Nishanth Menon,
Pali Rohár, Palmer Dabbelt, Paolo Abeni, Paul Cercueil,
Paul Walmsley, Pengutronix Kernel Team, Peter Rosin,
Philipp Zabel, Piotr Wojtaszczyk, platform-driver-x86,
Prasad Kumpatla, Qiang Zhao, Qin Jian, Rafael J. Wysocki,
Randy Dunlap, Ray Jui, Rengarajan Sundararajan, Richard Cochran,
Richard Weinberger, Rich Felker, Rob Clark, Robert Jarzmik,
Robert Richter, Rob Herring, Roger Quadros, Russell King,
Ryan Chen, Ryder Lee, Samuel Holland, Santosh Shilimkar,
Sascha Hauer, Scott Branden, Scott Wood, Sean Paul, Sean Wang,
Sean Wang, Sebastian Hesselbarth, Sergio Paracuellos, Shawn Guo,
Shawn Lin, Siddharth Vadapalli, Simona Vetter, Stafford Horne,
Stefan Kristiansson, Stephen Boyd, Sven Peter, Takashi Iwai,
Talel Shenhar, Tero Kristo, Thangaraj Samynathan, Thara Gopinath,
Thierry Reding, Thomas Bogendoerfer, Thomas Petazzoni, Toan Le,
Tony Lindgren, Tony Luck, UNGLinuxDriver, Uwe Kleine-König,
Vignesh Raghavendra, Vineet Gupta, Vladimir Oltean,
Vladimir Zapolskiy, WANG Xuerui, Woojung Huh, x86, Yanteng Si,
Yoshinori Sato, Zhang Rui
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,
--
js
suse labs
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: (subset) [PATCH v2 00/57] irqdomain: Cleanups and Documentation
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
` (5 preceding siblings ...)
2025-03-19 10:21 ` [PATCH v2 00/57] irqdomain: Cleanups and Documentation Andy Shevchenko
@ 2025-03-20 15:18 ` Mark Brown
2025-03-25 7:03 ` Christophe Leroy
2025-05-06 13:41 ` Thomas Gleixner
8 siblings, 0 replies; 15+ messages in thread
From: Mark Brown @ 2025-03-20 15:18 UTC (permalink / raw)
To: tglx, Jiri Slaby (SUSE)
Cc: maz, linux-kernel, Aaro Koskinen, Abhinav Kumar, Albert Ou,
Alexandre Belloni, Alexandre Ghiti, Alexandre Torgue,
Alex Deucher, Alex Shi, Alim Akhtar, Alvin Šipraga,
Alyssa Rosenzweig, amd-gfx, Amit Kucheria, Anatolij Gustschin,
Andi Shyti, Andreas Färber, Andreas Kemnade, Andrew Jeffery,
Andrew Lunn, Andy Shevchenko, AngeloGioacchino Del Regno,
Antoine Tenart, Anton Ivanov, Anup Patel, Arnd Bergmann, asahi,
Bartosz Golaszewski, Baruch Siach, Benjamin Herrenschmidt,
Bharat Kumar Gogada, Bjorn Andersson, Bjorn Helgaas,
Borislav Petkov, Broadcom internal kernel review list,
Claudiu Beznea, Corentin Chary, Daire McNamara, Daniel Golle,
Daniel Lezcano, Daniel Mack, Daniel Palmer, Dave Hansen,
David Airlie, David S. Miller, DENG Qingfang, Dinh Nguyen,
Dmitry Baryshkov, Dongliang Mu, Doug Berger, dri-devel,
Eddie James, Eric Dumazet, Fabio Estevam, Florian Fainelli,
Geoff Levand, Greg Kroah-Hartman, Gregory Clement, Guo Ren,
Hans de Goede, Haojian Zhuang, Haojian Zhuang, Heiko Stuebner,
Herve Codina, Hou Zhiqiang, H. Peter Anvin, Huacai Chen,
Changhuang Liang, Chen-Yu Tsai, Chester A. Unal,
Christian König, Christophe Leroy, Chris Zankel,
Ilpo Järvinen, Imre Kaloz, Ingo Molnar, Jakub Kicinski,
James Morse, Janne Grunau, Janusz Krzysztofik, Jaroslav Kysela,
Jassi Brar, Jernej Skrabec, Jerome Brunet, Jianjun Wang,
Jiawen Wu, Jiaxun Yang, Jim Quinlan, Jingoo Han, Joel Stanley,
Johannes Berg, John Crispin, John Paul Adrian Glaubitz,
Jonas Bonn, Jonathan Cameron, Jonathan Corbet, Jonathan Hunter,
Jonathan Neuschäfer, Joyce Ooi, Karthikeyan Mitran, Keerthy,
Kevin Hilman, Konrad Dybcio, Krzysztof Kozlowski,
Krzysztof Wilczyński, Kunihiko Hayashi, Lakshmi Sowjanya D,
Lars-Peter Clausen, Lee Jones, Liam Girdwood, Linus Walleij,
Linus Walleij, linux-amlogic, linux-arm-kernel, linux-arm-msm,
linux-doc, linux-edac, linux-gpio, linux-iio, linux-i2c,
linux-mediatek, linux-mips, linux-omap, linux-pci, linuxppc-dev,
linux-remoteproc, linux-riscv, linux-rpi-kernel, linux-sh,
linux-snps-arc, linux-sound, linux-stm32, linux-um,
linux-wireless, loongarch, Lorenzo Pieralisi, Ludovic Desroches,
Lukasz Luba, Luke D. Jones, Madhavan Srinivasan,
Manivannan Sadhasivam, Marek Behún, Marijn Suijten,
Mark-PK Tsai, Martin Blumenstingl, Masami Hiramatsu,
Mathieu Poirier, Matthias Brugger, Mauro Carvalho Chehab,
Max Filippov, Maxime Coquelin, Mengyuan Lou, Michael Buesch,
Michael Ellerman, Michal Simek, Miodrag Dinic, Naveen N Rao,
Neil Armstrong, netdev, Nicolas Ferre, Nicolas Saenz Julienne,
Nicholas Piggin, Nikhil Agarwal, Nipun Gupta, Nishanth Menon,
Pali Rohár, Palmer Dabbelt, Paolo Abeni, Paul Cercueil,
Paul Walmsley, Pengutronix Kernel Team, Peter Rosin,
Philipp Zabel, Piotr Wojtaszczyk, platform-driver-x86,
Prasad Kumpatla, Qiang Zhao, Qin Jian, Rafael J. Wysocki,
Randy Dunlap, Ray Jui, Rengarajan Sundararajan, Richard Cochran,
Richard Weinberger, Rich Felker, Rob Clark, Robert Jarzmik,
Robert Richter, Rob Herring, Roger Quadros, Russell King,
Ryan Chen, Ryder Lee, Samuel Holland, Santosh Shilimkar,
Sascha Hauer, Scott Branden, Scott Wood, Sean Paul, Sean Wang,
Sean Wang, Sebastian Hesselbarth, Sergio Paracuellos, Shawn Guo,
Shawn Lin, Siddharth Vadapalli, Simona Vetter, Stafford Horne,
Stefan Kristiansson, Stephen Boyd, Sven Peter, Takashi Iwai,
Talel Shenhar, Tero Kristo, Thangaraj Samynathan, Thara Gopinath,
Thierry Reding, Thomas Bogendoerfer, Thomas Petazzoni, Toan Le,
Tony Lindgren, Tony Luck, UNGLinuxDriver, Uwe Kleine-König,
Vignesh Raghavendra, Vineet Gupta, Vladimir Oltean,
Vladimir Zapolskiy, WANG Xuerui, Woojung Huh, x86, Yanteng Si,
Yoshinori Sato, Zhang Rui
On Wed, 19 Mar 2025 10:28:53 +0100, Jiri Slaby (SUSE) wrote:
> 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.
>
> ===
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[35/57] irqdomain: sound: Switch to irq_domain_create_linear()
commit: 83eddf0116b09186f909bc643f2093f266f204ea
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 41/57] irqdomain: ppc: Switch to irq_find_mapping()
2025-03-19 9:29 ` [PATCH v2 41/57] irqdomain: ppc: Switch to irq_find_mapping() Jiri Slaby (SUSE)
@ 2025-03-20 18:14 ` Christophe Leroy
0 siblings, 0 replies; 15+ messages in thread
From: Christophe Leroy @ 2025-03-20 18:14 UTC (permalink / raw)
To: Jiri Slaby (SUSE), tglx
Cc: maz, linux-kernel, Madhavan Srinivasan, Michael Ellerman,
Nicholas Piggin, Naveen N Rao, Anatolij Gustschin, Scott Wood,
linuxppc-dev
Le 19/03/2025 à 10:29, Jiri Slaby (SUSE) a écrit :
> irq_linear_revmap() is deprecated, so remove all its uses and supersede
> them by an identical call to irq_find_mapping().
>
> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
> Cc: Naveen N Rao <naveen@kernel.org>
> Cc: Anatolij Gustschin <agust@denx.de>
> Cc: Scott Wood <oss@buserror.net>
> Cc: linuxppc-dev@lists.ozlabs.org
Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu> # for 8xx
> ---
> arch/powerpc/platforms/44x/uic.c | 2 +-
> arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 2 +-
> arch/powerpc/platforms/52xx/mpc52xx_pic.c | 2 +-
> arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 2 +-
> arch/powerpc/platforms/8xx/cpm1-ic.c | 2 +-
> arch/powerpc/platforms/8xx/pic.c | 2 +-
> arch/powerpc/platforms/embedded6xx/flipper-pic.c | 2 +-
> arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 2 +-
> arch/powerpc/platforms/powermac/pic.c | 2 +-
> arch/powerpc/sysdev/cpm2_pic.c | 2 +-
> arch/powerpc/sysdev/ehv_pic.c | 2 +-
> arch/powerpc/sysdev/ge/ge_pic.c | 2 +-
> arch/powerpc/sysdev/ipic.c | 2 +-
> arch/powerpc/sysdev/mpic.c | 4 ++--
> 14 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/arch/powerpc/platforms/44x/uic.c b/arch/powerpc/platforms/44x/uic.c
> index 481ec25ce78f..85daf841fd3f 100644
> --- a/arch/powerpc/platforms/44x/uic.c
> +++ b/arch/powerpc/platforms/44x/uic.c
> @@ -328,5 +328,5 @@ unsigned int uic_get_irq(void)
> msr = mfdcr(primary_uic->dcrbase + UIC_MSR);
> src = 32 - ffs(msr);
>
> - return irq_linear_revmap(primary_uic->irqhost, src);
> + return irq_find_mapping(primary_uic->irqhost, src);
> }
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> index f042b21b2b73..3dbe5a5e5d1f 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> @@ -369,7 +369,7 @@ struct mpc52xx_gpt_priv *mpc52xx_gpt_from_irq(int irq)
> mutex_lock(&mpc52xx_gpt_list_mutex);
> list_for_each(pos, &mpc52xx_gpt_list) {
> gpt = container_of(pos, struct mpc52xx_gpt_priv, list);
> - if (gpt->irqhost && irq == irq_linear_revmap(gpt->irqhost, 0)) {
> + if (gpt->irqhost && irq == irq_find_mapping(gpt->irqhost, 0)) {
> mutex_unlock(&mpc52xx_gpt_list_mutex);
> return gpt;
> }
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> index 7ec56d3788a9..eb6a4e745c08 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> @@ -515,5 +515,5 @@ unsigned int mpc52xx_get_irq(void)
> return 0;
> }
>
> - return irq_linear_revmap(mpc52xx_irqhost, irq);
> + return irq_find_mapping(mpc52xx_irqhost, irq);
> }
> diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> index b4f6360830b1..4b69fb321a68 100644
> --- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> +++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> @@ -83,7 +83,7 @@ static inline unsigned int socrates_fpga_pic_get_irq(unsigned int irq)
> if (cause >> (i + 16))
> break;
> }
> - return irq_linear_revmap(socrates_fpga_pic_irq_host,
> + return irq_find_mapping(socrates_fpga_pic_irq_host,
> (irq_hw_number_t)i);
> }
>
> diff --git a/arch/powerpc/platforms/8xx/cpm1-ic.c b/arch/powerpc/platforms/8xx/cpm1-ic.c
> index 1549f6cd29f4..a49d4a9ab3bc 100644
> --- a/arch/powerpc/platforms/8xx/cpm1-ic.c
> +++ b/arch/powerpc/platforms/8xx/cpm1-ic.c
> @@ -59,7 +59,7 @@ static int cpm_get_irq(struct irq_desc *desc)
> cpm_vec = in_be16(&data->reg->cpic_civr);
> cpm_vec >>= 11;
>
> - return irq_linear_revmap(data->host, cpm_vec);
> + return irq_find_mapping(data->host, cpm_vec);
> }
>
> static void cpm_cascade(struct irq_desc *desc)
> diff --git a/arch/powerpc/platforms/8xx/pic.c b/arch/powerpc/platforms/8xx/pic.c
> index 7639f28172be..933d6ab7f512 100644
> --- a/arch/powerpc/platforms/8xx/pic.c
> +++ b/arch/powerpc/platforms/8xx/pic.c
> @@ -80,7 +80,7 @@ unsigned int mpc8xx_get_irq(void)
> if (irq == PIC_VEC_SPURRIOUS)
> return 0;
>
> - return irq_linear_revmap(mpc8xx_pic_host, irq);
> + return irq_find_mapping(mpc8xx_pic_host, irq);
>
> }
>
> diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> index a41649bf0cb8..91a8f0a7086e 100644
> --- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> +++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> @@ -173,7 +173,7 @@ unsigned int flipper_pic_get_irq(void)
> return 0; /* no more IRQs pending */
>
> irq = __ffs(irq_status);
> - return irq_linear_revmap(flipper_irq_host, irq);
> + return irq_find_mapping(flipper_irq_host, irq);
> }
>
> /*
> diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> index 9abb3da36ba5..b57e87b0b3ce 100644
> --- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> +++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> @@ -190,7 +190,7 @@ static struct irq_domain *__init hlwd_pic_init(struct device_node *np)
> unsigned int hlwd_pic_get_irq(void)
> {
> unsigned int hwirq = __hlwd_pic_get_irq(hlwd_irq_host);
> - return hwirq ? irq_linear_revmap(hlwd_irq_host, hwirq) : 0;
> + return hwirq ? irq_find_mapping(hlwd_irq_host, hwirq) : 0;
> }
>
> /*
> diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
> index 2eddc8bff7ab..c37783a03d25 100644
> --- a/arch/powerpc/platforms/powermac/pic.c
> +++ b/arch/powerpc/platforms/powermac/pic.c
> @@ -250,7 +250,7 @@ static unsigned int pmac_pic_get_irq(void)
> raw_spin_unlock_irqrestore(&pmac_pic_lock, flags);
> if (unlikely(irq < 0))
> return 0;
> - return irq_linear_revmap(pmac_pic_host, irq);
> + return irq_find_mapping(pmac_pic_host, irq);
> }
>
> static int pmac_pic_host_match(struct irq_domain *h, struct device_node *node,
> diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
> index c63d72f17a3e..4a59ed1d62ce 100644
> --- a/arch/powerpc/sysdev/cpm2_pic.c
> +++ b/arch/powerpc/sysdev/cpm2_pic.c
> @@ -207,7 +207,7 @@ unsigned int cpm2_get_irq(void)
>
> if (irq == 0)
> return(-1);
> - return irq_linear_revmap(cpm2_pic_host, irq);
> + return irq_find_mapping(cpm2_pic_host, irq);
> }
>
> static int cpm2_pic_host_map(struct irq_domain *h, unsigned int virq,
> diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
> index 4ee8d36ca647..b6f9774038e1 100644
> --- a/arch/powerpc/sysdev/ehv_pic.c
> +++ b/arch/powerpc/sysdev/ehv_pic.c
> @@ -175,7 +175,7 @@ unsigned int ehv_pic_get_irq(void)
> * this will also setup revmap[] in the slow path for the first
> * time, next calls will always use fast path by indexing revmap
> */
> - return irq_linear_revmap(global_ehv_pic->irqhost, irq);
> + return irq_find_mapping(global_ehv_pic->irqhost, irq);
> }
>
> static int ehv_pic_host_match(struct irq_domain *h, struct device_node *node,
> diff --git a/arch/powerpc/sysdev/ge/ge_pic.c b/arch/powerpc/sysdev/ge/ge_pic.c
> index 5b1f8dc3c960..0bc3f0b36528 100644
> --- a/arch/powerpc/sysdev/ge/ge_pic.c
> +++ b/arch/powerpc/sysdev/ge/ge_pic.c
> @@ -245,7 +245,7 @@ unsigned int gef_pic_get_irq(void)
> if (active & (0x1 << hwirq))
> break;
> }
> - virq = irq_linear_revmap(gef_pic_irq_host,
> + virq = irq_find_mapping(gef_pic_irq_host,
> (irq_hw_number_t)hwirq);
> }
>
> diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
> index f7b415ebb71c..70be2105865d 100644
> --- a/arch/powerpc/sysdev/ipic.c
> +++ b/arch/powerpc/sysdev/ipic.c
> @@ -801,7 +801,7 @@ unsigned int ipic_get_irq(void)
> if (irq == 0) /* 0 --> no irq is pending */
> return 0;
>
> - return irq_linear_revmap(primary_ipic->irqhost, irq);
> + return irq_find_mapping(primary_ipic->irqhost, irq);
> }
>
> #ifdef CONFIG_SUSPEND
> diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> index 3de090159a1b..787a88efdb35 100644
> --- a/arch/powerpc/sysdev/mpic.c
> +++ b/arch/powerpc/sysdev/mpic.c
> @@ -1785,7 +1785,7 @@ static unsigned int _mpic_get_one_irq(struct mpic *mpic, int reg)
> return 0;
> }
>
> - return irq_linear_revmap(mpic->irqhost, src);
> + return irq_find_mapping(mpic->irqhost, src);
> }
>
> unsigned int mpic_get_one_irq(struct mpic *mpic)
> @@ -1823,7 +1823,7 @@ unsigned int mpic_get_coreint_irq(void)
> return 0;
> }
>
> - return irq_linear_revmap(mpic->irqhost, src);
> + return irq_find_mapping(mpic->irqhost, src);
> #else
> return 0;
> #endif
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 32/57] irqdomain: ppc: Switch to irq_domain_create_*()
2025-03-19 9:29 ` [PATCH v2 32/57] irqdomain: ppc: Switch to irq_domain_create_*() Jiri Slaby (SUSE)
@ 2025-03-21 8:43 ` Christophe Leroy
0 siblings, 0 replies; 15+ messages in thread
From: Christophe Leroy @ 2025-03-21 8:43 UTC (permalink / raw)
To: Jiri Slaby (SUSE), tglx
Cc: maz, linux-kernel, Madhavan Srinivasan, Michael Ellerman,
Nicholas Piggin, Naveen N Rao, Anatolij Gustschin, Scott Wood,
linuxppc-dev
Le 19/03/2025 à 10:29, Jiri Slaby (SUSE) a écrit :
> irq_domain_add_*() interfaces are going away as being obsolete now.
> Switch to the preferred irq_domain_create_*() ones. Those differ in the
> node parameter: They take more generic struct fwnode_handle instead of
> struct device_node. Therefore, of_fwnode_handle() is added around the
> original parameter.
>
> Note some of the users can likely use dev->fwnode directly instead of
> indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not
> guaranteed to be set for all, so this has to be investigated on case to
> case basis (by people who can actually test with the HW).
>
> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
> Cc: Naveen N Rao <naveen@kernel.org>
> Cc: Anatolij Gustschin <agust@denx.de>
> Cc: Scott Wood <oss@buserror.net>
> Cc: linuxppc-dev@lists.ozlabs.org
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> # For 8xx
> ---
> arch/powerpc/platforms/44x/uic.c | 5 +++--
> arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 3 ++-
> arch/powerpc/platforms/52xx/media5200.c | 2 +-
> arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 4 ++--
> arch/powerpc/platforms/52xx/mpc52xx_pic.c | 2 +-
> arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 2 +-
> arch/powerpc/platforms/8xx/cpm1-ic.c | 3 ++-
> arch/powerpc/platforms/8xx/pic.c | 3 ++-
> arch/powerpc/platforms/embedded6xx/flipper-pic.c | 5 +++--
> arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 5 +++--
> arch/powerpc/platforms/powermac/pic.c | 5 +++--
> arch/powerpc/platforms/powernv/opal-irqchip.c | 3 ++-
> arch/powerpc/sysdev/cpm2_pic.c | 3 ++-
> arch/powerpc/sysdev/ehv_pic.c | 5 +++--
> arch/powerpc/sysdev/fsl_msi.c | 2 +-
> arch/powerpc/sysdev/ge/ge_pic.c | 5 +++--
> arch/powerpc/sysdev/i8259.c | 4 ++--
> arch/powerpc/sysdev/ipic.c | 5 +++--
> arch/powerpc/sysdev/mpic.c | 6 +++---
> arch/powerpc/sysdev/tsi108_pci.c | 4 ++--
> arch/powerpc/sysdev/xive/common.c | 2 +-
> 21 files changed, 45 insertions(+), 33 deletions(-)
>
> diff --git a/arch/powerpc/platforms/44x/uic.c b/arch/powerpc/platforms/44x/uic.c
> index 31f760c2ec5d..481ec25ce78f 100644
> --- a/arch/powerpc/platforms/44x/uic.c
> +++ b/arch/powerpc/platforms/44x/uic.c
> @@ -254,8 +254,9 @@ static struct uic * __init uic_init_one(struct device_node *node)
> }
> uic->dcrbase = *dcrreg;
>
> - uic->irqhost = irq_domain_add_linear(node, NR_UIC_INTS, &uic_host_ops,
> - uic);
> + uic->irqhost = irq_domain_create_linear(of_fwnode_handle(node),
> + NR_UIC_INTS, &uic_host_ops,
> + uic);
> if (! uic->irqhost)
> return NULL; /* FIXME: panic? */
>
> diff --git a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
> index e995eb30bf09..2cf3c6237337 100644
> --- a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
> +++ b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
> @@ -188,7 +188,8 @@ mpc5121_ads_cpld_pic_init(void)
>
> cpld_pic_node = of_node_get(np);
>
> - cpld_pic_host = irq_domain_add_linear(np, 16, &cpld_pic_host_ops, NULL);
> + cpld_pic_host = irq_domain_create_linear(of_fwnode_handle(np), 16,
> + &cpld_pic_host_ops, NULL);
> if (!cpld_pic_host) {
> printk(KERN_ERR "CPLD PIC: failed to allocate irq host!\n");
> goto end;
> diff --git a/arch/powerpc/platforms/52xx/media5200.c b/arch/powerpc/platforms/52xx/media5200.c
> index 19626cd42406..bc7f83cfec1d 100644
> --- a/arch/powerpc/platforms/52xx/media5200.c
> +++ b/arch/powerpc/platforms/52xx/media5200.c
> @@ -168,7 +168,7 @@ static void __init media5200_init_irq(void)
>
> spin_lock_init(&media5200_irq.lock);
>
> - media5200_irq.irqhost = irq_domain_add_linear(fpga_np,
> + media5200_irq.irqhost = irq_domain_create_linear(of_fwnode_handle(fpga_np),
> MEDIA5200_NUM_IRQS, &media5200_irq_ops, &media5200_irq);
> if (!media5200_irq.irqhost)
> goto out;
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> index 1ea591ec6083..f042b21b2b73 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
> @@ -247,9 +247,9 @@ mpc52xx_gpt_irq_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
> if (!cascade_virq)
> return;
>
> - gpt->irqhost = irq_domain_add_linear(node, 1, &mpc52xx_gpt_irq_ops, gpt);
> + gpt->irqhost = irq_domain_create_linear(of_fwnode_handle(node), 1, &mpc52xx_gpt_irq_ops, gpt);
> if (!gpt->irqhost) {
> - dev_err(gpt->dev, "irq_domain_add_linear() failed\n");
> + dev_err(gpt->dev, "irq_domain_create_linear() failed\n");
> return;
> }
>
> diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> index 43c881d31ca6..7ec56d3788a9 100644
> --- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> +++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
> @@ -446,7 +446,7 @@ void __init mpc52xx_init_irq(void)
> * As last step, add an irq host to translate the real
> * hw irq information provided by the ofw to linux virq
> */
> - mpc52xx_irqhost = irq_domain_add_linear(picnode,
> + mpc52xx_irqhost = irq_domain_create_linear(of_fwnode_handle(picnode),
> MPC52xx_IRQ_HIGHTESTHWIRQ,
> &mpc52xx_irqhost_ops, NULL);
>
> diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> index 60e0b8947ce6..b4f6360830b1 100644
> --- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> +++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
> @@ -278,7 +278,7 @@ void __init socrates_fpga_pic_init(struct device_node *pic)
> int i;
>
> /* Setup an irq_domain structure */
> - socrates_fpga_pic_irq_host = irq_domain_add_linear(pic,
> + socrates_fpga_pic_irq_host = irq_domain_create_linear(of_fwnode_handle(pic),
> SOCRATES_FPGA_NUM_IRQS, &socrates_fpga_pic_host_ops, NULL);
> if (socrates_fpga_pic_irq_host == NULL) {
> pr_err("FPGA PIC: Unable to allocate host\n");
> diff --git a/arch/powerpc/platforms/8xx/cpm1-ic.c b/arch/powerpc/platforms/8xx/cpm1-ic.c
> index a18fc7c99f83..1549f6cd29f4 100644
> --- a/arch/powerpc/platforms/8xx/cpm1-ic.c
> +++ b/arch/powerpc/platforms/8xx/cpm1-ic.c
> @@ -110,7 +110,8 @@ static int cpm_pic_probe(struct platform_device *pdev)
>
> out_be32(&data->reg->cpic_cimr, 0);
>
> - data->host = irq_domain_add_linear(dev->of_node, 64, &cpm_pic_host_ops, data);
> + data->host = irq_domain_create_linear(of_fwnode_handle(dev->of_node),
> + 64, &cpm_pic_host_ops, data);
> if (!data->host)
> return -ENODEV;
>
> diff --git a/arch/powerpc/platforms/8xx/pic.c b/arch/powerpc/platforms/8xx/pic.c
> index ea6b0e523c60..7639f28172be 100644
> --- a/arch/powerpc/platforms/8xx/pic.c
> +++ b/arch/powerpc/platforms/8xx/pic.c
> @@ -146,7 +146,8 @@ void __init mpc8xx_pic_init(void)
> if (!siu_reg)
> goto out;
>
> - mpc8xx_pic_host = irq_domain_add_linear(np, 64, &mpc8xx_pic_host_ops, NULL);
> + mpc8xx_pic_host = irq_domain_create_linear(of_fwnode_handle(np), 64,
> + &mpc8xx_pic_host_ops, NULL);
> if (!mpc8xx_pic_host)
> printk(KERN_ERR "MPC8xx PIC: failed to allocate irq host!\n");
>
> diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> index 013d66304c31..a41649bf0cb8 100644
> --- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> +++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
> @@ -149,8 +149,9 @@ static struct irq_domain * __init flipper_pic_init(struct device_node *np)
>
> __flipper_quiesce(io_base);
>
> - irq_domain = irq_domain_add_linear(np, FLIPPER_NR_IRQS,
> - &flipper_irq_domain_ops, io_base);
> + irq_domain = irq_domain_create_linear(of_fwnode_handle(np),
> + FLIPPER_NR_IRQS,
> + &flipper_irq_domain_ops, io_base);
> if (!irq_domain) {
> pr_err("failed to allocate irq_domain\n");
> return NULL;
> diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> index 4d2d92de30af..9abb3da36ba5 100644
> --- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> +++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
> @@ -175,8 +175,9 @@ static struct irq_domain *__init hlwd_pic_init(struct device_node *np)
>
> __hlwd_quiesce(io_base);
>
> - irq_domain = irq_domain_add_linear(np, HLWD_NR_IRQS,
> - &hlwd_irq_domain_ops, io_base);
> + irq_domain = irq_domain_create_linear(of_fwnode_handle(np),
> + HLWD_NR_IRQS,
> + &hlwd_irq_domain_ops, io_base);
> if (!irq_domain) {
> pr_err("failed to allocate irq_domain\n");
> iounmap(io_base);
> diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
> index 03a7c51f2645..2eddc8bff7ab 100644
> --- a/arch/powerpc/platforms/powermac/pic.c
> +++ b/arch/powerpc/platforms/powermac/pic.c
> @@ -327,8 +327,9 @@ static void __init pmac_pic_probe_oldstyle(void)
> /*
> * Allocate an irq host
> */
> - pmac_pic_host = irq_domain_add_linear(master, max_irqs,
> - &pmac_pic_host_ops, NULL);
> + pmac_pic_host = irq_domain_create_linear(of_fwnode_handle(master),
> + max_irqs,
> + &pmac_pic_host_ops, NULL);
> BUG_ON(pmac_pic_host == NULL);
> irq_set_default_domain(pmac_pic_host);
>
> diff --git a/arch/powerpc/platforms/powernv/opal-irqchip.c b/arch/powerpc/platforms/powernv/opal-irqchip.c
> index d92759c21fae..e180bd8e1400 100644
> --- a/arch/powerpc/platforms/powernv/opal-irqchip.c
> +++ b/arch/powerpc/platforms/powernv/opal-irqchip.c
> @@ -191,7 +191,8 @@ int __init opal_event_init(void)
> * fall back to the legacy method (opal_event_request(...))
> * anyway. */
> dn = of_find_compatible_node(NULL, NULL, "ibm,opal-event");
> - opal_event_irqchip.domain = irq_domain_add_linear(dn, MAX_NUM_EVENTS,
> + opal_event_irqchip.domain = irq_domain_create_linear(of_fwnode_handle(dn),
> + MAX_NUM_EVENTS,
> &opal_event_domain_ops, &opal_event_irqchip);
> of_node_put(dn);
> if (!opal_event_irqchip.domain) {
> diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
> index e14493685fe8..c63d72f17a3e 100644
> --- a/arch/powerpc/sysdev/cpm2_pic.c
> +++ b/arch/powerpc/sysdev/cpm2_pic.c
> @@ -259,7 +259,8 @@ void cpm2_pic_init(struct device_node *node)
> out_be32(&cpm2_intctl->ic_scprrl, 0x05309770);
>
> /* create a legacy host */
> - cpm2_pic_host = irq_domain_add_linear(node, 64, &cpm2_pic_host_ops, NULL);
> + cpm2_pic_host = irq_domain_create_linear(of_fwnode_handle(node), 64,
> + &cpm2_pic_host_ops, NULL);
> if (cpm2_pic_host == NULL) {
> printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n");
> return;
> diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
> index fb502b72fca1..4ee8d36ca647 100644
> --- a/arch/powerpc/sysdev/ehv_pic.c
> +++ b/arch/powerpc/sysdev/ehv_pic.c
> @@ -269,8 +269,9 @@ void __init ehv_pic_init(void)
> return;
> }
>
> - ehv_pic->irqhost = irq_domain_add_linear(np, NR_EHV_PIC_INTS,
> - &ehv_pic_host_ops, ehv_pic);
> + ehv_pic->irqhost = irq_domain_create_linear(of_fwnode_handle(np),
> + NR_EHV_PIC_INTS,
> + &ehv_pic_host_ops, ehv_pic);
> if (!ehv_pic->irqhost) {
> of_node_put(np);
> kfree(ehv_pic);
> diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
> index 7b9a5ea9cad9..4fe8a7b1b288 100644
> --- a/arch/powerpc/sysdev/fsl_msi.c
> +++ b/arch/powerpc/sysdev/fsl_msi.c
> @@ -412,7 +412,7 @@ static int fsl_of_msi_probe(struct platform_device *dev)
> }
> platform_set_drvdata(dev, msi);
>
> - msi->irqhost = irq_domain_add_linear(dev->dev.of_node,
> + msi->irqhost = irq_domain_create_linear(of_fwnode_handle(dev->dev.of_node),
> NR_MSI_IRQS_MAX, &fsl_msi_host_ops, msi);
>
> if (msi->irqhost == NULL) {
> diff --git a/arch/powerpc/sysdev/ge/ge_pic.c b/arch/powerpc/sysdev/ge/ge_pic.c
> index a6c424680c37..5b1f8dc3c960 100644
> --- a/arch/powerpc/sysdev/ge/ge_pic.c
> +++ b/arch/powerpc/sysdev/ge/ge_pic.c
> @@ -214,8 +214,9 @@ void __init gef_pic_init(struct device_node *np)
> }
>
> /* Setup an irq_domain structure */
> - gef_pic_irq_host = irq_domain_add_linear(np, GEF_PIC_NUM_IRQS,
> - &gef_pic_host_ops, NULL);
> + gef_pic_irq_host = irq_domain_create_linear(of_fwnode_handle(np),
> + GEF_PIC_NUM_IRQS,
> + &gef_pic_host_ops, NULL);
> if (gef_pic_irq_host == NULL)
> return;
>
> diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c
> index 06e391485da7..99bb2b916949 100644
> --- a/arch/powerpc/sysdev/i8259.c
> +++ b/arch/powerpc/sysdev/i8259.c
> @@ -260,8 +260,8 @@ void i8259_init(struct device_node *node, unsigned long intack_addr)
> raw_spin_unlock_irqrestore(&i8259_lock, flags);
>
> /* create a legacy host */
> - i8259_host = irq_domain_add_legacy(node, NR_IRQS_LEGACY, 0, 0,
> - &i8259_host_ops, NULL);
> + i8259_host = irq_domain_create_legacy(of_fwnode_handle(node), NR_IRQS_LEGACY, 0, 0,
> + &i8259_host_ops, NULL);
> if (i8259_host == NULL) {
> printk(KERN_ERR "i8259: failed to allocate irq host !\n");
> return;
> diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
> index a35be0232978..f7b415ebb71c 100644
> --- a/arch/powerpc/sysdev/ipic.c
> +++ b/arch/powerpc/sysdev/ipic.c
> @@ -711,8 +711,9 @@ struct ipic * __init ipic_init(struct device_node *node, unsigned int flags)
> if (ipic == NULL)
> return NULL;
>
> - ipic->irqhost = irq_domain_add_linear(node, NR_IPIC_INTS,
> - &ipic_host_ops, ipic);
> + ipic->irqhost = irq_domain_create_linear(of_fwnode_handle(node),
> + NR_IPIC_INTS,
> + &ipic_host_ops, ipic);
> if (ipic->irqhost == NULL) {
> kfree(ipic);
> return NULL;
> diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> index 4afbab83a2e2..3de090159a1b 100644
> --- a/arch/powerpc/sysdev/mpic.c
> +++ b/arch/powerpc/sysdev/mpic.c
> @@ -1483,9 +1483,9 @@ struct mpic * __init mpic_alloc(struct device_node *node,
> mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1);
> mpic->isu_mask = (1 << mpic->isu_shift) - 1;
>
> - mpic->irqhost = irq_domain_add_linear(mpic->node,
> - intvec_top,
> - &mpic_host_ops, mpic);
> + mpic->irqhost = irq_domain_create_linear(of_fwnode_handle(mpic->node),
> + intvec_top,
> + &mpic_host_ops, mpic);
>
> /*
> * FIXME: The code leaks the MPIC object and mappings here; this
> diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
> index 0e42f7bad7db..07d0f6a83879 100644
> --- a/arch/powerpc/sysdev/tsi108_pci.c
> +++ b/arch/powerpc/sysdev/tsi108_pci.c
> @@ -404,8 +404,8 @@ void __init tsi108_pci_int_init(struct device_node *node)
> {
> DBG("Tsi108_pci_int_init: initializing PCI interrupts\n");
>
> - pci_irq_host = irq_domain_add_legacy(node, NR_IRQS_LEGACY, 0, 0,
> - &pci_irq_domain_ops, NULL);
> + pci_irq_host = irq_domain_create_legacy(of_fwnode_handle(node), NR_IRQS_LEGACY, 0, 0,
> + &pci_irq_domain_ops, NULL);
> if (pci_irq_host == NULL) {
> printk(KERN_ERR "pci_irq_host: failed to allocate irq domain!\n");
> return;
> diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c
> index dc2e61837396..f10592405024 100644
> --- a/arch/powerpc/sysdev/xive/common.c
> +++ b/arch/powerpc/sysdev/xive/common.c
> @@ -1464,7 +1464,7 @@ static const struct irq_domain_ops xive_irq_domain_ops = {
>
> static void __init xive_init_host(struct device_node *np)
> {
> - xive_irq_domain = irq_domain_add_tree(np, &xive_irq_domain_ops, NULL);
> + xive_irq_domain = irq_domain_create_tree(of_fwnode_handle(np), &xive_irq_domain_ops, NULL);
> if (WARN_ON(xive_irq_domain == NULL))
> return;
> irq_set_default_domain(xive_irq_domain);
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: (subset) [PATCH v2 00/57] irqdomain: Cleanups and Documentation
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
` (6 preceding siblings ...)
2025-03-20 15:18 ` (subset) " Mark Brown
@ 2025-03-25 7:03 ` Christophe Leroy
2025-05-06 13:41 ` Thomas Gleixner
8 siblings, 0 replies; 15+ messages in thread
From: Christophe Leroy @ 2025-03-25 7:03 UTC (permalink / raw)
To: tglx, Jiri Slaby (SUSE)
Cc: Christophe Leroy, maz, linux-kernel, Aaro Koskinen, Abhinav Kumar,
Albert Ou, Alexandre Belloni, Alexandre Ghiti, Alexandre Torgue,
Alex Deucher, Alex Shi, Alim Akhtar, Alvin Šipraga,
Alyssa Rosenzweig, amd-gfx, Amit Kucheria, Anatolij Gustschin,
Andi Shyti, Andreas Färber, Andreas Kemnade, Andrew Jeffery,
Andrew Lunn, Andy Shevchenko, AngeloGioacchino Del Regno,
Antoine Tenart, Anton Ivanov, Anup Patel, Arnd Bergmann, asahi,
Bartosz Golaszewski, Baruch Siach, Benjamin Herrenschmidt,
Bharat Kumar Gogada, Bjorn Andersson, Bjorn Helgaas,
Borislav Petkov, Broadcom internal kernel review list,
Claudiu Beznea, Corentin Chary, Daire McNamara, Daniel Golle,
Daniel Lezcano, Daniel Mack, Daniel Palmer, Dave Hansen,
David Airlie, David S. Miller, DENG Qingfang, Dinh Nguyen,
Dmitry Baryshkov, Dongliang Mu, Doug Berger, dri-devel,
Eddie James, Eric Dumazet, Fabio Estevam, Florian Fainelli,
Geoff Levand, Greg Kroah-Hartman, Gregory Clement, Guo Ren,
Hans de Goede, Haojian Zhuang, Haojian Zhuang, Heiko Stuebner,
Herve Codina, Hou Zhiqiang, H. Peter Anvin, Huacai Chen,
Changhuang Liang, Chen-Yu Tsai, Chester A. Unal,
Christian König, Chris Zankel, Ilpo Järvinen,
Imre Kaloz, Ingo Molnar, Jakub Kicinski, James Morse,
Janne Grunau, Janusz Krzysztofik, Jaroslav Kysela, Jassi Brar,
Jernej Skrabec, Jerome Brunet, Jianjun Wang, Jiawen Wu,
Jiaxun Yang, Jim Quinlan, Jingoo Han, Joel Stanley, Johannes Berg,
John Crispin, John Paul Adrian Glaubitz, Jonas Bonn,
Jonathan Cameron, Jonathan Corbet, Jonathan Hunter,
Jonathan Neuschäfer, Joyce Ooi, Karthikeyan Mitran, Keerthy,
Kevin Hilman, Konrad Dybcio, Krzysztof Kozlowski,
Krzysztof Wilczyński, Kunihiko Hayashi, Lakshmi Sowjanya D,
Lars-Peter Clausen, Lee Jones, Liam Girdwood, Linus Walleij,
Linus Walleij, linux-amlogic, linux-arm-kernel, linux-arm-msm,
linux-doc, linux-edac, linux-gpio, linux-iio, linux-i2c,
linux-mediatek, linux-mips, linux-omap, linux-pci, linuxppc-dev,
linux-remoteproc, linux-riscv, linux-rpi-kernel, linux-sh,
linux-snps-arc, linux-sound, linux-stm32, linux-um,
linux-wireless, loongarch, Lorenzo Pieralisi, Ludovic Desroches,
Lukasz Luba, Luke D. Jones, Madhavan Srinivasan,
Manivannan Sadhasivam, Marek Behún, Marijn Suijten,
Mark Brown, Mark-PK Tsai, Martin Blumenstingl, Masami Hiramatsu,
Mathieu Poirier, Matthias Brugger, Mauro Carvalho Chehab,
Max Filippov, Maxime Coquelin, Mengyuan Lou, Michael Buesch,
Michael Ellerman, Michal Simek, Miodrag Dinic, Naveen N Rao,
Neil Armstrong, netdev, Nicolas Ferre, Nicolas Saenz Julienne,
Nicholas Piggin, Nikhil Agarwal, Nipun Gupta, Nishanth Menon,
Pali Rohár, Palmer Dabbelt, Paolo Abeni, Paul Cercueil,
Paul Walmsley, Pengutronix Kernel Team, Peter Rosin,
Philipp Zabel, Piotr Wojtaszczyk, platform-driver-x86,
Prasad Kumpatla, Qiang Zhao, Qin Jian, Rafael J. Wysocki,
Randy Dunlap, Ray Jui, Rengarajan Sundararajan, Richard Cochran,
Richard Weinberger, Rich Felker, Rob Clark, Robert Jarzmik,
Robert Richter, Rob Herring, Roger Quadros, Russell King,
Ryan Chen, Ryder Lee, Samuel Holland, Santosh Shilimkar,
Sascha Hauer, Scott Branden, Scott Wood, Sean Paul, Sean Wang,
Sean Wang, Sebastian Hesselbarth, Sergio Paracuellos, Shawn Guo,
Shawn Lin, Siddharth Vadapalli, Simona Vetter, Stafford Horne,
Stefan Kristiansson, Stephen Boyd, Sven Peter, Takashi Iwai,
Talel Shenhar, Tero Kristo, Thangaraj Samynathan, Thara Gopinath,
Thierry Reding, Thomas Bogendoerfer, Thomas Petazzoni, Toan Le,
Tony Lindgren, Tony Luck, UNGLinuxDriver, Uwe Kleine-König,
Vignesh Raghavendra, Vineet Gupta, Vladimir Oltean,
Vladimir Zapolskiy, WANG Xuerui, Woojung Huh, x86, Yanteng Si,
Yoshinori Sato, Zhang Rui
On Wed, 19 Mar 2025 10:28:53 +0100, Jiri Slaby (SUSE) wrote:
> 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.
>
> ===
>
> [...]
Applied, thanks!
[48/57] irqdomain: soc: Switch to irq_find_mapping()
commit: a70a3a6322131632cc6cf71e9d2fa6409a029fd7
Best regards,
--
Christophe Leroy <christophe.leroy@csgroup.eu>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 08/57] irqdomain: ppc: Switch to of_fwnode_handle()
2025-03-19 9:29 ` [PATCH v2 08/57] irqdomain: ppc: Switch to of_fwnode_handle() Jiri Slaby (SUSE)
@ 2025-04-07 7:11 ` Jiri Slaby
0 siblings, 0 replies; 15+ messages in thread
From: Jiri Slaby @ 2025-04-07 7:11 UTC (permalink / raw)
To: Madhavan Srinivasan
Cc: maz, linux-kernel, Michael Ellerman, Nicholas Piggin,
Christophe Leroy, Naveen N Rao, linuxppc-dev, tglx
@PPC maintainers: if you have not read 00/57 [1], please route this
through your tree.
[1] https://lore.kernel.org/all/20250319092951.37667-1-jirislaby@kernel.org/
Thanks.
On 19. 03. 25, 10:29, Jiri Slaby (SUSE) wrote:
> of_node_to_fwnode() is irqdomain's reimplementation of the "officially"
> defined of_fwnode_handle(). The former is in the process of being
> removed, so use the latter instead.
>
> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Nicholas Piggin <npiggin@gmail.com>
> Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
> Cc: Naveen N Rao <naveen@kernel.org>
> Cc: linuxppc-dev@lists.ozlabs.org
> ---
> arch/powerpc/platforms/powernv/pci-ioda.c | 2 +-
> arch/powerpc/platforms/pseries/msi.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
> index ae4b549b5ca0..d8ccf2c9b98a 100644
> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
> @@ -1897,7 +1897,7 @@ static int __init pnv_msi_allocate_domains(struct pci_controller *hose, unsigned
> return -ENOMEM;
> }
>
> - hose->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(hose->dn),
> + hose->msi_domain = pci_msi_create_irq_domain(of_fwnode_handle(hose->dn),
> &pnv_msi_domain_info,
> hose->dev_domain);
> if (!hose->msi_domain) {
> diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c
> index f9d80111c322..5b191f70c088 100644
> --- a/arch/powerpc/platforms/pseries/msi.c
> +++ b/arch/powerpc/platforms/pseries/msi.c
> @@ -628,7 +628,7 @@ static int __pseries_msi_allocate_domains(struct pci_controller *phb,
> return -ENOMEM;
> }
>
> - phb->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(phb->dn),
> + phb->msi_domain = pci_msi_create_irq_domain(of_fwnode_handle(phb->dn),
> &pseries_msi_domain_info,
> phb->dev_domain);
> if (!phb->msi_domain) {
--
js
suse labs
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 00/57] irqdomain: Cleanups and Documentation
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
` (7 preceding siblings ...)
2025-03-25 7:03 ` Christophe Leroy
@ 2025-05-06 13:41 ` Thomas Gleixner
2025-05-12 9:55 ` Jiri Slaby
8 siblings, 1 reply; 15+ messages in thread
From: Thomas Gleixner @ 2025-05-06 13:41 UTC (permalink / raw)
To: Jiri Slaby (SUSE)
Cc: maz, linux-kernel, Jiri Slaby (SUSE), Aaro Koskinen,
Abhinav Kumar, Albert Ou, Alexandre Belloni, Alexandre Ghiti,
Alexandre Torgue, Alex Deucher, Alex Shi, Alim Akhtar,
Alvin Šipraga, Alyssa Rosenzweig, amd-gfx, Amit Kucheria,
Anatolij Gustschin, Andi Shyti, Andreas Färber,
Andreas Kemnade, Andrew Jeffery, Andrew Lunn, Andy Shevchenko,
AngeloGioacchino Del Regno, Antoine Tenart, Anton Ivanov,
Anup Patel, Arnd Bergmann, asahi, Bartosz Golaszewski,
Baruch Siach, Benjamin Herrenschmidt, Bharat Kumar Gogada,
Bjorn Andersson, Bjorn Helgaas, Borislav Petkov,
Broadcom internal kernel review list, Claudiu Beznea,
Corentin Chary, Daire McNamara, Daniel Golle, Daniel Lezcano,
Daniel Mack, Daniel Palmer, Dave Hansen, David Airlie,
David S. Miller, DENG Qingfang, Dinh Nguyen, Dmitry Baryshkov,
Dongliang Mu, Doug Berger, dri-devel, Eddie James, Eric Dumazet,
Fabio Estevam, Florian Fainelli, Geoff Levand, Greg Kroah-Hartman,
Gregory Clement, Guo Ren, Hans de Goede, Haojian Zhuang,
Haojian Zhuang, Heiko Stuebner, Herve Codina, Hou Zhiqiang,
H. Peter Anvin, Huacai Chen, Changhuang Liang, Chen-Yu Tsai,
Chester A. Unal, Christian König, Christophe Leroy,
Chris Zankel, Ilpo Järvinen, Imre Kaloz, Ingo Molnar,
Jakub Kicinski, James Morse, Janne Grunau, Janusz Krzysztofik,
Jaroslav Kysela, Jassi Brar, Jernej Skrabec, Jerome Brunet,
Jianjun Wang, Jiawen Wu, Jiaxun Yang, Jim Quinlan, Jingoo Han,
Joel Stanley, Johannes Berg, John Crispin,
John Paul Adrian Glaubitz, Jonas Bonn, Jonathan Cameron,
Jonathan Corbet, Jonathan Hunter, Jonathan Neuschäfer,
Joyce Ooi, Karthikeyan Mitran, Keerthy, Kevin Hilman,
Konrad Dybcio, Krzysztof Kozlowski, Krzysztof Wilczyński,
Kunihiko Hayashi, Lakshmi Sowjanya D, Lars-Peter Clausen,
Lee Jones, Liam Girdwood, Linus Walleij, Linus Walleij,
linux-amlogic, linux-arm-kernel, linux-arm-msm, linux-doc,
linux-edac, linux-gpio, linux-iio, linux-i2c, linux-mediatek,
linux-mips, linux-omap, linux-pci, linuxppc-dev, linux-remoteproc,
linux-riscv, linux-rpi-kernel, linux-sh, linux-snps-arc,
linux-sound, linux-stm32, linux-um, linux-wireless, loongarch,
Lorenzo Pieralisi, Ludovic Desroches, Lukasz Luba, Luke D. Jones,
Madhavan Srinivasan, Manivannan Sadhasivam, Marek Behún,
Marijn Suijten, Mark Brown, Mark-PK Tsai, Martin Blumenstingl,
Masami Hiramatsu, Mathieu Poirier, Matthias Brugger,
Mauro Carvalho Chehab, Max Filippov, Maxime Coquelin,
Mengyuan Lou, Michael Buesch, Michael Ellerman, Michal Simek,
Miodrag Dinic, Naveen N Rao, Neil Armstrong, netdev,
Nicolas Ferre, Nicolas Saenz Julienne, Nicholas Piggin,
Nikhil Agarwal, Nipun Gupta, Nishanth Menon, Pali Rohár,
Palmer Dabbelt, Paolo Abeni, Paul Cercueil, Paul Walmsley,
Pengutronix Kernel Team, Peter Rosin, Philipp Zabel,
Piotr Wojtaszczyk, platform-driver-x86, Prasad Kumpatla,
Qiang Zhao, Qin Jian, Rafael J. Wysocki, Randy Dunlap, Ray Jui,
Rengarajan Sundararajan, Richard Cochran, Richard Weinberger,
Rich Felker, Rob Clark, Robert Jarzmik, Robert Richter,
Rob Herring, Roger Quadros, Russell King, Ryan Chen, Ryder Lee,
Samuel Holland, Santosh Shilimkar, Sascha Hauer, Scott Branden,
Scott Wood, Sean Paul, Sean Wang, Sean Wang,
Sebastian Hesselbarth, Sergio Paracuellos, Shawn Guo, Shawn Lin,
Siddharth Vadapalli, Simona Vetter, Stafford Horne,
Stefan Kristiansson, Stephen Boyd, Sven Peter, Takashi Iwai,
Talel Shenhar, Tero Kristo, Thangaraj Samynathan, Thara Gopinath,
Thierry Reding, Thomas Bogendoerfer, Thomas Petazzoni, Toan Le,
Tony Lindgren, Tony Luck, UNGLinuxDriver, Uwe Kleine-König,
Vignesh Raghavendra, Vineet Gupta, Vladimir Oltean,
Vladimir Zapolskiy, WANG Xuerui, Woojung Huh, x86, Yanteng Si,
Yoshinori Sato, Zhang Rui
On Wed, Mar 19 2025 at 10:28, Jiri Slaby 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.
So. It's rc5 by now and I picked up everything which did not show up in
next yet. As there are some patches in next, I delayed the removal of
functions for the merge window so that we don't end up with merge
dependencies.
To reducde conflicts, I grabbed the irq branch from the PCI tree under
the assumption that this branch is stable.
The series sits now in
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/cleanups
and will be in next soon. If there are duplicates showing up in next,
I'm going to remove them from my branch, so the branch is not for basing
development on.
@Jiri, I fixed up all your subject prefixes as
'irqdomain: subsys: Switch to foo()'
does not make any sense at all. These subsystems have their regular
prefixes and these changes do not justify made up irqdomain special
prefixes at all.
Thanks,
tglx
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 00/57] irqdomain: Cleanups and Documentation
2025-05-06 13:41 ` Thomas Gleixner
@ 2025-05-12 9:55 ` Jiri Slaby
0 siblings, 0 replies; 15+ messages in thread
From: Jiri Slaby @ 2025-05-12 9:55 UTC (permalink / raw)
To: Thomas Gleixner
Cc: maz, linux-kernel, Aaro Koskinen, Abhinav Kumar, Albert Ou,
Alexandre Belloni, Alexandre Ghiti, Alexandre Torgue,
Alex Deucher, Alex Shi, Alim Akhtar, Alvin Šipraga,
Alyssa Rosenzweig, amd-gfx, Amit Kucheria, Anatolij Gustschin,
Andi Shyti, Andreas Färber, Andreas Kemnade, Andrew Jeffery,
Andrew Lunn, Andy Shevchenko, AngeloGioacchino Del Regno,
Antoine Tenart, Anton Ivanov, Anup Patel, Arnd Bergmann, asahi,
Bartosz Golaszewski, Baruch Siach, Benjamin Herrenschmidt,
Bharat Kumar Gogada, Bjorn Andersson, Bjorn Helgaas,
Borislav Petkov, Broadcom internal kernel review list,
Claudiu Beznea, Corentin Chary, Daire McNamara, Daniel Golle,
Daniel Lezcano, Daniel Mack, Daniel Palmer, Dave Hansen,
David Airlie, David S. Miller, DENG Qingfang, Dinh Nguyen,
Dmitry Baryshkov, Dongliang Mu, Doug Berger, dri-devel,
Eddie James, Eric Dumazet, Fabio Estevam, Florian Fainelli,
Geoff Levand, Greg Kroah-Hartman, Gregory Clement, Guo Ren,
Hans de Goede, Haojian Zhuang, Haojian Zhuang, Heiko Stuebner,
Herve Codina, Hou Zhiqiang, H. Peter Anvin, Huacai Chen,
Changhuang Liang, Chen-Yu Tsai, Chester A. Unal,
Christian König, Christophe Leroy, Chris Zankel,
Ilpo Järvinen, Imre Kaloz, Ingo Molnar, Jakub Kicinski,
James Morse, Janne Grunau, Janusz Krzysztofik, Jaroslav Kysela,
Jassi Brar, Jernej Skrabec, Jerome Brunet, Jianjun Wang,
Jiawen Wu, Jiaxun Yang, Jim Quinlan, Jingoo Han, Joel Stanley,
Johannes Berg, John Crispin, John Paul Adrian Glaubitz,
Jonas Bonn, Jonathan Cameron, Jonathan Corbet, Jonathan Hunter,
Jonathan Neuschäfer, Joyce Ooi, Karthikeyan Mitran, Keerthy,
Kevin Hilman, Konrad Dybcio, Krzysztof Kozlowski,
Krzysztof Wilczyński, Kunihiko Hayashi, Lakshmi Sowjanya D,
Lars-Peter Clausen, Lee Jones, Liam Girdwood, Linus Walleij,
Linus Walleij, linux-amlogic, linux-arm-kernel, linux-arm-msm,
linux-doc, linux-edac, linux-gpio, linux-iio, linux-i2c,
linux-mediatek, linux-mips, linux-omap, linux-pci, linuxppc-dev,
linux-remoteproc, linux-riscv, linux-rpi-kernel, linux-sh,
linux-snps-arc, linux-sound, linux-stm32, linux-um,
linux-wireless, loongarch, Lorenzo Pieralisi, Ludovic Desroches,
Lukasz Luba, Luke D. Jones, Madhavan Srinivasan,
Manivannan Sadhasivam, Marek Behún, Marijn Suijten,
Mark Brown, Mark-PK Tsai, Martin Blumenstingl, Masami Hiramatsu,
Mathieu Poirier, Matthias Brugger, Mauro Carvalho Chehab,
Max Filippov, Maxime Coquelin, Mengyuan Lou, Michael Buesch,
Michael Ellerman, Michal Simek, Miodrag Dinic, Naveen N Rao,
Neil Armstrong, netdev, Nicolas Ferre, Nicolas Saenz Julienne,
Nicholas Piggin, Nikhil Agarwal, Nipun Gupta, Nishanth Menon,
Pali Rohár, Palmer Dabbelt, Paolo Abeni, Paul Cercueil,
Paul Walmsley, Pengutronix Kernel Team, Peter Rosin,
Philipp Zabel, Piotr Wojtaszczyk, platform-driver-x86,
Prasad Kumpatla, Qiang Zhao, Qin Jian, Rafael J. Wysocki,
Randy Dunlap, Ray Jui, Rengarajan Sundararajan, Richard Cochran,
Richard Weinberger, Rich Felker, Rob Clark, Robert Jarzmik,
Robert Richter, Rob Herring, Roger Quadros, Russell King,
Ryan Chen, Ryder Lee, Samuel Holland, Santosh Shilimkar,
Sascha Hauer, Scott Branden, Scott Wood, Sean Paul, Sean Wang,
Sean Wang, Sebastian Hesselbarth, Sergio Paracuellos, Shawn Guo,
Shawn Lin, Siddharth Vadapalli, Simona Vetter, Stafford Horne,
Stefan Kristiansson, Stephen Boyd, Sven Peter, Takashi Iwai,
Talel Shenhar, Tero Kristo, Thangaraj Samynathan, Thara Gopinath,
Thierry Reding, Thomas Bogendoerfer, Thomas Petazzoni, Toan Le,
Tony Lindgren, Tony Luck, UNGLinuxDriver, Uwe Kleine-König,
Vignesh Raghavendra, Vineet Gupta, Vladimir Oltean,
Vladimir Zapolskiy, WANG Xuerui, Woojung Huh, x86, Yanteng Si,
Yoshinori Sato, Zhang Rui
On 06. 05. 25, 15:41, Thomas Gleixner wrote:
> On Wed, Mar 19 2025 at 10:28, Jiri Slaby 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.
>
> So. It's rc5 by now and I picked up everything
Good, thanks.
> which did not show up in next yet.
Which is the majority -- routing through subsystems didn't work as well
as I anticipated.
I planned to retry with v3 after the next merge window, but you were faster.
V3 contains a switch from nodes to dev_fwnode() in some cases. It
simplifies the code there. This did not get lost, I will send this
separately to maintainers once everything from this series settles in
the tree. I.e. likely after the next merge window.
> @Jiri, I fixed up all your subject prefixes as
>
> 'irqdomain: subsys: Switch to foo()'
>
> does not make any sense at all. These subsystems have their regular
> prefixes and these changes do not justify made up irqdomain special
> prefixes at all.
Yes.
thanks,
--
js
suse labs
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-05-12 9:56 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-19 9:28 [PATCH v2 00/57] irqdomain: Cleanups and Documentation Jiri Slaby (SUSE)
2025-03-19 9:29 ` [PATCH v2 08/57] irqdomain: ppc: Switch to of_fwnode_handle() Jiri Slaby (SUSE)
2025-04-07 7:11 ` Jiri Slaby
2025-03-19 9:29 ` [PATCH v2 32/57] irqdomain: ppc: Switch to irq_domain_create_*() Jiri Slaby (SUSE)
2025-03-21 8:43 ` Christophe Leroy
2025-03-19 9:29 ` [PATCH v2 39/57] irqdomain: ppc: Switch irq_domain_add_nomap() to use fwnode Jiri Slaby (SUSE)
2025-03-19 9:29 ` [PATCH v2 41/57] irqdomain: ppc: Switch to irq_find_mapping() Jiri Slaby (SUSE)
2025-03-20 18:14 ` Christophe Leroy
2025-03-19 9:29 ` [PATCH v2 48/57] irqdomain: soc: " Jiri Slaby (SUSE)
2025-03-19 10:21 ` [PATCH v2 00/57] irqdomain: Cleanups and Documentation Andy Shevchenko
2025-03-19 10:32 ` Jiri Slaby
2025-03-20 15:18 ` (subset) " Mark Brown
2025-03-25 7:03 ` Christophe Leroy
2025-05-06 13:41 ` Thomas Gleixner
2025-05-12 9:55 ` Jiri Slaby
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).