[PATCH/RFC 0/2] of/irq: Fix root interrupt controller handling

Geert Uytterhoeven geert+renesas at glider.be
Fri Oct 3 03:07:47 PDT 2025


	Hi all,

On ARM, the main interrupt controller is typically the GIC, and one can
safely put "interrupt-parent = <&gic>;" in the root node.  The GIC node
has an interrupts property, but it points to itself, causing
of_irq_init() to treat it as the root interrupt controller.

On RISC-V, the main interrupt controller is typically the PLIC.
However, one can not put "interrupt-parent = <&plic>;" in the root node,
as that would cause a kernel panic ("No interrupt controller found").
The main difference with ARM is that the PLIC is not the root interrupt
controller: its interrupt parent is the RISC-V CPU or Hart-Level
Interrupt Controller (HLIC).  The latter is the root interrupt
controller, and despite having no interrupts property, it is currently
not considered the root interrupt controller when an interrupt-parent
property is present in the root node.

This series fixes the issue in of_irq_init(), and moves the
"interrupt-parent = <&plic>;" for the RZ/Five (R9A07G043F) SoC from the
soc node to the top node, like was done recently for the very similar
RZ/G2UL (R9A07G043U) SoC[1].

Thanks for your comments!

[1] https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git/commit/?h=renesas-dts-for-v6.19&id=0070434f4a910179a23cd7ab812c33811f00b253)

Geert Uytterhoeven (2):
  of/irq: Ignore interrupt parent for nodes without interrupts
  riscv: dts: renesas: r9a07g043f: Move interrupt-parent to top node

 arch/riscv/boot/dts/renesas/r9a07g043f.dtsi | 3 ++-
 drivers/of/irq.c                            | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

-- 
2.43.0

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds



More information about the linux-riscv mailing list