[PATCH 05/19] net: airoha: do not call airoha_fe_init() from GDM port independent code
Mikhail Kshevetskiy
mikhail.kshevetskiy at iopsys.eu
Thu Dec 4 05:14:19 CET 2025
We should not call airoha_fe_init() from GDM port independent code,
because it do a GDM specific things.
Makes airoha_fe_maccr_init() and airoha_fe_init() port dependent
and call them from airoha_eth_port_probe()
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy at iopsys.eu>
---
drivers/net/airoha_eth.c | 28 ++++++++++++----------------
1 file changed, 12 insertions(+), 16 deletions(-)
diff --git a/drivers/net/airoha_eth.c b/drivers/net/airoha_eth.c
index ed8ee9da4c9..b1256866046 100644
--- a/drivers/net/airoha_eth.c
+++ b/drivers/net/airoha_eth.c
@@ -431,22 +431,18 @@ static int airoha_get_fe_port(struct airoha_gdm_port *port)
}
}
-static void airoha_fe_maccr_init(struct airoha_eth *eth)
+static void airoha_fe_maccr_init(struct airoha_gdm_port *port)
{
- int p;
-
- for (p = 1; p <= AIROHA_MAX_NUM_GDM_PORTS; p++) {
- /*
- * Disable any kind of CRC drop or offload.
- * Enable padding of short TX packets to 60 bytes.
- */
- airoha_fe_wr(eth, REG_GDM_FWD_CFG(p), GDM_PAD_EN);
- }
+ /*
+ * Disable any kind of CRC drop or offload.
+ * Enable padding of short TX packets to 60 bytes.
+ */
+ airoha_fe_wr(port->qdma->eth, REG_GDM_FWD_CFG(port->id), GDM_PAD_EN);
}
-static int airoha_fe_init(struct airoha_eth *eth)
+static int airoha_fe_init(struct airoha_gdm_port *port)
{
- airoha_fe_maccr_init(eth);
+ airoha_fe_maccr_init(port);
return 0;
}
@@ -718,10 +714,6 @@ static int airoha_hw_init(struct udevice *dev,
mdelay(20);
- ret = airoha_fe_init(eth);
- if (ret)
- return ret;
-
for (i = 0; i < ARRAY_SIZE(eth->qdma); i++) {
ret = airoha_qdma_init(dev, eth, ð->qdma[i]);
if (ret)
@@ -898,6 +890,10 @@ static int airoha_eth_port_probe(struct udevice *dev)
port->qdma = ð->qdma[0];
+ ret = airoha_fe_init(port);
+ if (ret)
+ return ret;
+
return 0;
}
--
2.51.0
More information about the U-Boot
mailing list