Skip to content

Commit 41b72f6

Browse files
frank-wNipaLocal
authored and
NipaLocal
committed
net: ethernet: mtk_eth_soc: support named IRQs
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> Signed-off-by: NipaLocal <nipa@local>
1 parent a938fc8 commit 41b72f6

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

drivers/net/ethernet/mediatek/mtk_eth_soc.c

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5105,17 +5105,23 @@ static int mtk_probe(struct platform_device *pdev)
51055105
}
51065106
}
51075107

5108-
for (i = 0; i < 3; i++) {
5109-
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0)
5110-
eth->irq[i] = eth->irq[0];
5111-
else
5112-
eth->irq[i] = platform_get_irq(pdev, i);
5113-
if (eth->irq[i] < 0) {
5114-
dev_err(&pdev->dev, "no IRQ%d resource found\n", i);
5115-
err = -ENXIO;
5116-
goto err_wed_exit;
5108+
eth->irq[1] = platform_get_irq_byname(pdev, "tx");
5109+
eth->irq[2] = platform_get_irq_byname(pdev, "rx");
5110+
if (eth->irq[1] < 0 || eth->irq[2] < 0) {
5111+
for (i = 0; i < 3; i++) {
5112+
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0)
5113+
eth->irq[i] = eth->irq[0];
5114+
else
5115+
eth->irq[i] = platform_get_irq(pdev, i);
5116+
5117+
if (eth->irq[i] < 0) {
5118+
dev_err(&pdev->dev, "no IRQ%d resource found\n", i);
5119+
err = -ENXIO;
5120+
goto err_wed_exit;
5121+
}
51175122
}
51185123
}
5124+
51195125
for (i = 0; i < ARRAY_SIZE(eth->clks); i++) {
51205126
eth->clks[i] = devm_clk_get(eth->dev,
51215127
mtk_clks_source_name[i]);

0 commit comments

Comments
 (0)