[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<AS8PR04MB8642733D81F0A37FBB70902E87C82@AS8PR04MB8642.eurprd04.prod.outlook.com>
Date: Tue, 4 Mar 2025 12:02:00 +0000
From: Jacky Bai <ping.bai@....com>
To: Thomas Gleixner <tglx@...utronix.de>, "shawnguo@...nel.org"
<shawnguo@...nel.org>, "s.hauer@...gutronix.de" <s.hauer@...gutronix.de>
CC: "kernel@...gutronix.de" <kernel@...gutronix.de>, "festevam@...il.com"
<festevam@...il.com>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, "imx@...ts.linux.dev" <imx@...ts.linux.dev>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, Aisheng Dong <aisheng.dong@....com>,
Peng Fan <peng.fan@....com>, Frank Li <frank.li@....com>, "S.J. Wang"
<shengjiu.wang@....com>
Subject: RE: [PATCH] irq: imx-irqsteer: irq_count can larger than registered
irq
> Subject: Re: [PATCH] irq: imx-irqsteer: irq_count can larger than registered irq
>
> On Tue, Mar 04 2025 at 17:45, Jacky Bai wrote:
> > From: Shengjiu Wang <shengjiu.wang@....com>
Hi Thomas,
>
> Please use the proper subsystem prefix as documented:
>
>
...
>
> Also 'irq_count can larger than registered irq' is not a sentence and tells
> absolutely nothing what this patch is about.
>
My fault, will fix it.
> > The irqsteer IP itself can support up to 5 channels and each channel
> > can support max 960 IRQs per. The actual number of
>
> Can you please write out words, i.e. interrupts, hardware etc.. This is a
> changelog and not twatter.
>
> Aside of that: 'per.' does not make any sense. 'per' wants to be followed by a
> noun: '...per $WHAT.'
>
Thx, will improve and fix in v2.
> > channels and IRQ per channel implemented in HW is SoC related.
>
> > For previous i.MX SoCs, normally only one channel and max 512 IRQ is
> > implemented, But for i.MX94, the irqsteer HW is implemented for 960
> > IRQs, even it only has 384 IRQs connected.
> >
> > That means on i.MX94, the 'irq_number' is 6 but the 'irq_count' is
>
> What means irq_number and irq_count here?
For irqsteer, the interrupt inputs are divided into groups, each group has 64 interrupt
Inputs and use one irqsteer's interrupt output line to raise interrupt to parent interrupt controller.
The irq_number means how many interrupt output lines from irqsteer are really
connected to the parent interrupt controller, while the irq_count means the max
interrupt input line groups in the irqsteer instance.
If the irq_count is 15, as each group has 64 interrupts, it means the irqsteer
can support up to 960 interrupt inputs.
>
> > 15, so we need to increase the CHAN_MAX_OUTPUT_INT to 0xF(960 / 64)
>
> What kind of math is 0xF(960 / 64) ? And what has this to do with
> irq_number=6 ad irq_count=15?
As mentioned above, if the irqsteer is designed in HW with max 960 interrupt inputs,
It needs 15 interrupt outputs: 960 / 16 = 15. Even if we only 384, 512, or any number of
interrupt inputs less than 960 are actually connected to valid peripheral interrupt.
For i.MX94, In the SoC design, the irqsteer is designed with max 960 interrupt inputs, the
irq_count is 15. But only 384 inputs are really connected in HW. For these 384 interrupts,
it need 6 irqsteer interrupt output(384 / 64 = 6), the irq_number is 6.
In other world, the irq_number means the number of used interrupt outputs, while irq_count
means the max interrupt outputs that can be supported by an irqsteer instance.
I will refine the changelog to make it more clear. Sorry for the confusion,^_^
BR
Jacky
>
> Thanks,
>
> tglx
Powered by blists - more mailing lists