Re: [PATCH] of/irq: Add a quirk for controllers with their own definition of interrupt-map
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-11-24 07:55:04
Also in:
linux-renesas-soc, lkml
Hi Marc, On Tue, Nov 23, 2021 at 10:11 AM Marc Zyngier [off-list ref] wrote:
On Tue, 23 Nov 2021 08:44:19 +0000, Geert Uytterhoeven [off-list ref] wrote:quoted
On Tue, Nov 23, 2021 at 9:33 AM Marc Zyngier [off-list ref] wrote:quoted
On Tue, 23 Nov 2021 07:57:48 +0000, Geert Uytterhoeven [off-list ref] wrote:quoted
Summarized: - Before the bad commit, and after your fix, irqc-rza1 is invoked, and the number of interrupts seen is correct, but input events are doubled. - After the bad commit, irqc-rza1 is not invoked, and there is an interrupt storm, but input events are OK.OK, that's reassuring, even if the "twice the events" stuff isn't what you'd expect. We at least know this is a separate issue, and that this patch on top of -rc1 brings you back to the 5.15 behaviour. I'd expect it to be the case for the other platforms as well.OK. BTW, what would have been the correct way to do this for irqc-rza1? I think we're about to make the same mistake with RZ/G2L IRQC support[1]?Indeed, and I was about to look into it. There are multiple ways to skin this cat, including renaming 'interrupt-map' to 'my-own-private-interrupt-map'. Or use something akin the new 'msi-range' (which we could call interrupt-range), and replace:
"interrupt-ranges" (with trailing "S"), cfr. "msi-ranges"?
interrupt-map = <0 0 &gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
<1 0 &gic GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
<2 0 &gic GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
<3 0 &gic GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<4 0 &gic GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<5 0 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<6 0 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<7 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
with:
interrupt-range = <&gic GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH 0 8>;
which reads as "base interrupt spec", "start pin", "count". This
gives you almost the same level of information, and doesn't interfere
with the rest of the DT properties. Parsing it is also much simpler.And in the non-consecutive case, you need multiple ranges, right?
But that's up to you, really.
Chris: do you think we can still do this for RZ/A, or do we have too
many users in the wild using the upstream code?
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@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