From: Lorenzo Bianconi <lorenzo@kernel.org>
To: Frank Wunderlich <frank-w@public-files.de>
Cc: Frank Wunderlich <linux@fw-web.de>, Felix Fietkau <nbd@nbd.name>,
Sean Wang <sean.wang@mediatek.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, daniel@makrotopia.org
Subject: Re: [net-next v1] net: ethernet: mtk_eth_soc: support named IRQs
Date: Sun, 15 Jun 2025 10:56:39 +0200 [thread overview]
Message-ID: <aE6Kx4JHyEmDY2mQ@lore-desk> (raw)
In-Reply-To: <E6B6CB88-4B47-455D-9554-DE9BFC209454@public-files.de>
[-- Attachment #1: Type: text/plain, Size: 4227 bytes --]
On Jun 14, Frank Wunderlich wrote:
> Am 14. Juni 2025 09:48:58 MESZ schrieb Lorenzo Bianconi <lorenzo@kernel.org>:
> >> From: Frank Wunderlich <frank-w@public-files.de>
> >>
> >> Add named interrupts and keep index based fallback for exiting devicetrees.
> >>
> >> Currently only rx and tx IRQs are defined to be used with mt7988, but
> >> later extended with RSS/LRO support.
> >>
> >> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> >> ---
> >> drivers/net/ethernet/mediatek/mtk_eth_soc.c | 24 +++++++++++++--------
> >> 1 file changed, 15 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> >> index b76d35069887..fcec5f95685e 100644
> >> --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> >> +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
> >> @@ -5106,17 +5106,23 @@ static int mtk_probe(struct platform_device *pdev)
> >> }
> >> }
> >>
> >> - for (i = 0; i < 3; i++) {
> >> - if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0)
> >> - eth->irq[i] = eth->irq[0];
> >> - else
> >> - eth->irq[i] = platform_get_irq(pdev, i);
> >> - if (eth->irq[i] < 0) {
> >> - dev_err(&pdev->dev, "no IRQ%d resource found\n", i);
> >> - err = -ENXIO;
> >> - goto err_wed_exit;
> >> + eth->irq[1] = platform_get_irq_byname(pdev, "tx");
> >> + eth->irq[2] = platform_get_irq_byname(pdev, "rx");
> >
> >Hi Frank,
> >
> >doing so you are not setting eth->irq[0] for MT7988 devices but it is actually
> >used in mtk_add_mac() even for non-MTK_SHARED_INT devices. I guess we can reduce
> >the eth->irq array size to 2 and start from 0 even for the MT7988 case.
> >What do you think?
>
> Hi Lorenzo,
>
> Thank you for reviewing my patch
>
> I had to leave flow compatible with this:
>
> <https://github.com/frank-w/BPI-Router-Linux/blob/bd7e1983b9f0a69cf47cc9b9631138910d6c1d72/drivers/net/ethernet/mediatek/mtk_eth_soc.c#L5176>
I guess the best would be to start from 0 even here (and wherever it is
necessary) and avoid reading current irq[0] since it is not actually used for
!shared_int devices (e.g. MT7988). Agree?
>
> Here the irqs are taken from index 1 and 2 for
> registration (!shared_int else only 0). So i avoided changing the
> index,but yes index 0 is unset at this time.
>
> I guess the irq0 is not really used here...
> I tested the code on bpi-r4 and have traffic
> rx+tx and no crash.
> imho this field is not used on !shared_int
> because other irq-handlers are used and
> assigned in position above.
agree. I have not reviewed the code in detail, but this is why
I think we can avoid reading it.
>
> It looks like the irq[0] is read before...there is a
> message printed for mediatek frame engine
> which uses index 0 and shows an irq 102 on
> index way and 0 on named version...but the
> 102 in index way is not visible in /proc/interrupts.
> So imho this message is misleading.
>
> Intention for this patch is that irq 0 and 3 on
> mt7988 (sdk) are reserved (0 is skipped on
> !shared_int and 3 never read) and should imho
> not listed in devicetree. For further cleaner
> devicetrees (with only needed irqs) and to
> extend additional irqs for rss/lro imho irq
> names make it better readable.
Same here, if you are not listing them in the device tree, you can remove them
in the driver too (and adjust the code to keep the backward compatibility).
Regards,
Lorenzo
>
> >Regards,
> >Lorenzo
> >
> >> + if (eth->irq[1] < 0 || eth->irq[2] < 0) {
> >> + for (i = 0; i < 3; i++) {
> >> + if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0)
> >> + eth->irq[i] = eth->irq[0];
> >> + else
> >> + eth->irq[i] = platform_get_irq(pdev, i);
> >> +
> >> + if (eth->irq[i] < 0) {
> >> + dev_err(&pdev->dev, "no IRQ%d resource found\n", i);
> >> + err = -ENXIO;
> >> + goto err_wed_exit;
> >> + }
> >> }
> >> }
> >> +
> >> for (i = 0; i < ARRAY_SIZE(eth->clks); i++) {
> >> eth->clks[i] = devm_clk_get(eth->dev,
> >> mtk_clks_source_name[i]);
> >> --
> >> 2.43.0
> >>
>
>
> regards Frank
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2025-06-15 9:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-13 19:18 [net-next v1] net: ethernet: mtk_eth_soc: support named IRQs Frank Wunderlich
2025-06-14 7:48 ` Lorenzo Bianconi
2025-06-14 8:38 ` Frank Wunderlich
2025-06-15 8:56 ` Lorenzo Bianconi [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-06-13 14:45 Frank Wunderlich
2025-06-14 17:31 ` Simon Horman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aE6Kx4JHyEmDY2mQ@lore-desk \
--to=lorenzo@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=angelogioacchino.delregno@collabora.com \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=frank-w@public-files.de \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@fw-web.de \
--cc=matthias.bgg@gmail.com \
--cc=nbd@nbd.name \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sean.wang@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox