Thread (29 messages) 29 messages, 6 authors, 2021-12-06

Re: [PATCH] of/irq: Add a quirk for controllers with their own definition of interrupt-map

From: Marc Zyngier <maz@kernel.org>
Date: 2021-11-29 11:19:16
Also in: linux-renesas-soc, lkml

On Sat, 27 Nov 2021 00:42:49 +0000,
Prabhakar Mahadev Lad [off-list ref] wrote:
Hi Marc,
quoted
-----Original Message-----
From: Marc Zyngier <maz@kernel.org>
Sent: 23 November 2021 09:11
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; kernel-team@android.com; Rob Herring
[off-list ref]; John Crispin [off-list ref]; Biwen Li [off-list ref]; Chris Brandt
[off-list ref]; linux-renesas-soc@vger.kernel.org; Prabhakar Mahadev Lad
[off-list ref]
Subject: Re: [PATCH] of/irq: Add a quirk for controllers with their own definition of interrupt-map

On Tue, 23 Nov 2021 08:44:19 +0000,
Geert Uytterhoeven [off-list ref] wrote:
quoted
Hi Marc,

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-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>;
Just to clarify, do you suggest to add interrupt-range as a generic
DT property or SoC/company specific property?
As a generic one. I have no interest in SoC-specific stuff (though you
are free to invent your own and run it by Rob).
If you meant to add generic property where would you suggest to
document this property?
Ideally collocated with the rest of the interrupt properties.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help