From: Frank Wunderlich <linux@fw-web.de>
To: Felix Fietkau <nbd@nbd.name>, Sean Wang <sean.wang@mediatek.com>,
Lorenzo Bianconi <lorenzo@kernel.org>,
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>
Cc: Frank Wunderlich <frank-w@public-files.de>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
Simon Horman <horms@kernel.org>,
Daniel Golle <daniel@makrotopia.org>,
arinc.unal@arinc9.com
Subject: [net-next v4 2/3] net: ethernet: mtk_eth_soc: add consts for irq index
Date: Mon, 16 Jun 2025 10:07:35 +0200 [thread overview]
Message-ID: <20250616080738.117993-3-linux@fw-web.de> (raw)
In-Reply-To: <20250616080738.117993-1-linux@fw-web.de>
From: Frank Wunderlich <frank-w@public-files.de>
Use consts instead of fixed integers for accessing IRQ array.
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v4:
- calculate max from last (rx) irq index and use it for array size too
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 22 ++++++++++-----------
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 7 ++++++-
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 81ae8a6fe838..3ecb399dcf81 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -3341,14 +3341,14 @@ static int mtk_get_irqs(struct platform_device *pdev, struct mtk_eth *eth)
{
int i;
- eth->irq[1] = platform_get_irq_byname(pdev, "tx");
- eth->irq[2] = platform_get_irq_byname(pdev, "rx");
- if (eth->irq[1] >= 0 && eth->irq[2] >= 0)
+ eth->irq[MTK_ETH_IRQ_TX] = platform_get_irq_byname(pdev, "tx");
+ eth->irq[MTK_ETH_IRQ_RX] = platform_get_irq_byname(pdev, "rx");
+ if (eth->irq[MTK_ETH_IRQ_TX] >= 0 && eth->irq[MTK_ETH_IRQ_RX] >= 0)
return 0;
- for (i = 0; i < 3; i++) {
+ for (i = 0; i < MTK_ETH_IRQ_MAX; i++) {
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0)
- eth->irq[i] = eth->irq[0];
+ eth->irq[i] = eth->irq[MTK_ETH_IRQ_SHARED];
else
eth->irq[i] = platform_get_irq(pdev, i);
@@ -3414,7 +3414,7 @@ static void mtk_poll_controller(struct net_device *dev)
mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_disable(eth, eth->soc->rx.irq_done_mask);
- mtk_handle_irq_rx(eth->irq[2], dev);
+ mtk_handle_irq_rx(eth->irq[MTK_ETH_IRQ_RX], dev);
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_enable(eth, eth->soc->rx.irq_done_mask);
}
@@ -4900,7 +4900,7 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
eth->netdev[id]->features |= eth->soc->hw_features;
eth->netdev[id]->ethtool_ops = &mtk_ethtool_ops;
- eth->netdev[id]->irq = eth->irq[0];
+ eth->netdev[id]->irq = eth->irq[MTK_ETH_IRQ_SHARED];
eth->netdev[id]->dev.of_node = np;
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628))
@@ -5177,17 +5177,17 @@ static int mtk_probe(struct platform_device *pdev)
}
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
- err = devm_request_irq(eth->dev, eth->irq[0],
+ err = devm_request_irq(eth->dev, eth->irq[MTK_ETH_IRQ_SHARED],
mtk_handle_irq, 0,
dev_name(eth->dev), eth);
} else {
- err = devm_request_irq(eth->dev, eth->irq[1],
+ err = devm_request_irq(eth->dev, eth->irq[MTK_ETH_IRQ_TX],
mtk_handle_irq_tx, 0,
dev_name(eth->dev), eth);
if (err)
goto err_free_dev;
- err = devm_request_irq(eth->dev, eth->irq[2],
+ err = devm_request_irq(eth->dev, eth->irq[MTK_ETH_IRQ_RX],
mtk_handle_irq_rx, 0,
dev_name(eth->dev), eth);
}
@@ -5233,7 +5233,7 @@ static int mtk_probe(struct platform_device *pdev)
} else
netif_info(eth, probe, eth->netdev[i],
"mediatek frame engine at 0x%08lx, irq %d\n",
- eth->netdev[i]->base_addr, eth->irq[0]);
+ eth->netdev[i]->base_addr, eth->irq[MTK_ETH_IRQ_SHARED]);
}
/* we run 2 devices on the same DMA ring so we need a dummy device
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index 6f72a8c8ae1e..96b724dca0e2 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -642,6 +642,11 @@
#define MTK_MAC_FSM(x) (0x1010C + ((x) * 0x100))
+#define MTK_ETH_IRQ_SHARED 0
+#define MTK_ETH_IRQ_TX 1
+#define MTK_ETH_IRQ_RX 2
+#define MTK_ETH_IRQ_MAX (MTK_ETH_IRQ_RX + 1)
+
struct mtk_rx_dma {
unsigned int rxd1;
unsigned int rxd2;
@@ -1292,7 +1297,7 @@ struct mtk_eth {
struct net_device *dummy_dev;
struct net_device *netdev[MTK_MAX_DEVS];
struct mtk_mac *mac[MTK_MAX_DEVS];
- int irq[3];
+ int irq[MTK_ETH_IRQ_MAX];
u32 msg_enable;
unsigned long sysclk;
struct regmap *ethsys;
--
2.43.0
WARNING: multiple messages have this Message-ID (diff)
From: Frank Wunderlich <linux@fw-web.de>
To: Felix Fietkau <nbd@nbd.name>, Sean Wang <sean.wang@mediatek.com>,
Lorenzo Bianconi <lorenzo@kernel.org>,
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>
Cc: netdev@vger.kernel.org, arinc.unal@arinc9.com,
linux-kernel@vger.kernel.org,
Daniel Golle <daniel@makrotopia.org>,
linux-mediatek@lists.infradead.org,
Simon Horman <horms@kernel.org>,
linux-arm-kernel@lists.infradead.org
Subject: [net-next v4 2/3] net: ethernet: mtk_eth_soc: add consts for irq index
Date: Mon, 16 Jun 2025 10:07:35 +0200 [thread overview]
Message-ID: <20250616080738.117993-3-linux@fw-web.de> (raw)
In-Reply-To: <20250616080738.117993-1-linux@fw-web.de>
From: Frank Wunderlich <frank-w@public-files.de>
Use consts instead of fixed integers for accessing IRQ array.
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
v4:
- calculate max from last (rx) irq index and use it for array size too
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 22 ++++++++++-----------
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 7 ++++++-
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 81ae8a6fe838..3ecb399dcf81 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -3341,14 +3341,14 @@ static int mtk_get_irqs(struct platform_device *pdev, struct mtk_eth *eth)
{
int i;
- eth->irq[1] = platform_get_irq_byname(pdev, "tx");
- eth->irq[2] = platform_get_irq_byname(pdev, "rx");
- if (eth->irq[1] >= 0 && eth->irq[2] >= 0)
+ eth->irq[MTK_ETH_IRQ_TX] = platform_get_irq_byname(pdev, "tx");
+ eth->irq[MTK_ETH_IRQ_RX] = platform_get_irq_byname(pdev, "rx");
+ if (eth->irq[MTK_ETH_IRQ_TX] >= 0 && eth->irq[MTK_ETH_IRQ_RX] >= 0)
return 0;
- for (i = 0; i < 3; i++) {
+ for (i = 0; i < MTK_ETH_IRQ_MAX; i++) {
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0)
- eth->irq[i] = eth->irq[0];
+ eth->irq[i] = eth->irq[MTK_ETH_IRQ_SHARED];
else
eth->irq[i] = platform_get_irq(pdev, i);
@@ -3414,7 +3414,7 @@ static void mtk_poll_controller(struct net_device *dev)
mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_disable(eth, eth->soc->rx.irq_done_mask);
- mtk_handle_irq_rx(eth->irq[2], dev);
+ mtk_handle_irq_rx(eth->irq[MTK_ETH_IRQ_RX], dev);
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_enable(eth, eth->soc->rx.irq_done_mask);
}
@@ -4900,7 +4900,7 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
eth->netdev[id]->features |= eth->soc->hw_features;
eth->netdev[id]->ethtool_ops = &mtk_ethtool_ops;
- eth->netdev[id]->irq = eth->irq[0];
+ eth->netdev[id]->irq = eth->irq[MTK_ETH_IRQ_SHARED];
eth->netdev[id]->dev.of_node = np;
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628))
@@ -5177,17 +5177,17 @@ static int mtk_probe(struct platform_device *pdev)
}
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
- err = devm_request_irq(eth->dev, eth->irq[0],
+ err = devm_request_irq(eth->dev, eth->irq[MTK_ETH_IRQ_SHARED],
mtk_handle_irq, 0,
dev_name(eth->dev), eth);
} else {
- err = devm_request_irq(eth->dev, eth->irq[1],
+ err = devm_request_irq(eth->dev, eth->irq[MTK_ETH_IRQ_TX],
mtk_handle_irq_tx, 0,
dev_name(eth->dev), eth);
if (err)
goto err_free_dev;
- err = devm_request_irq(eth->dev, eth->irq[2],
+ err = devm_request_irq(eth->dev, eth->irq[MTK_ETH_IRQ_RX],
mtk_handle_irq_rx, 0,
dev_name(eth->dev), eth);
}
@@ -5233,7 +5233,7 @@ static int mtk_probe(struct platform_device *pdev)
} else
netif_info(eth, probe, eth->netdev[i],
"mediatek frame engine at 0x%08lx, irq %d\n",
- eth->netdev[i]->base_addr, eth->irq[0]);
+ eth->netdev[i]->base_addr, eth->irq[MTK_ETH_IRQ_SHARED]);
}
/* we run 2 devices on the same DMA ring so we need a dummy device
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index 6f72a8c8ae1e..96b724dca0e2 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -642,6 +642,11 @@
#define MTK_MAC_FSM(x) (0x1010C + ((x) * 0x100))
+#define MTK_ETH_IRQ_SHARED 0
+#define MTK_ETH_IRQ_TX 1
+#define MTK_ETH_IRQ_RX 2
+#define MTK_ETH_IRQ_MAX (MTK_ETH_IRQ_RX + 1)
+
struct mtk_rx_dma {
unsigned int rxd1;
unsigned int rxd2;
@@ -1292,7 +1297,7 @@ struct mtk_eth {
struct net_device *dummy_dev;
struct net_device *netdev[MTK_MAX_DEVS];
struct mtk_mac *mac[MTK_MAX_DEVS];
- int irq[3];
+ int irq[MTK_ETH_IRQ_MAX];
u32 msg_enable;
unsigned long sysclk;
struct regmap *ethsys;
--
2.43.0
next prev parent reply other threads:[~2025-06-16 8:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-16 8:07 [net-next v4 0/3] rework IRQ handling in mtk_eth_soc Frank Wunderlich
2025-06-16 8:07 ` Frank Wunderlich
2025-06-16 8:07 ` [net-next v4 1/3] net: ethernet: mtk_eth_soc: support named IRQs Frank Wunderlich
2025-06-16 8:07 ` Frank Wunderlich
2025-06-19 7:44 ` Frank Wunderlich
2025-06-19 12:38 ` Simon Horman
2025-06-16 8:07 ` Frank Wunderlich [this message]
2025-06-16 8:07 ` [net-next v4 2/3] net: ethernet: mtk_eth_soc: add consts for irq index Frank Wunderlich
2025-06-18 8:36 ` Simon Horman
2025-06-18 8:36 ` Simon Horman
2025-06-18 9:24 ` Aw: " Frank Wunderlich
2025-06-18 12:39 ` Simon Horman
2025-06-16 8:07 ` [net-next v4 3/3] net: ethernet: mtk_eth_soc: change code to skip first IRQ completely Frank Wunderlich
2025-06-16 8:07 ` Frank Wunderlich
2025-06-18 8:35 ` Simon Horman
2025-06-18 8:35 ` Simon Horman
2025-06-18 9:14 ` Aw: " Frank Wunderlich
2025-06-18 12:38 ` 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=20250616080738.117993-3-linux@fw-web.de \
--to=linux@fw-web.de \
--cc=andrew+netdev@lunn.ch \
--cc=angelogioacchino.delregno@collabora.com \
--cc=arinc.unal@arinc9.com \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=frank-w@public-files.de \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=lorenzo@kernel.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.