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 <[email protected]>
---
 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, &eth->qdma[i]);
                if (ret)
@@ -898,6 +890,10 @@ static int airoha_eth_port_probe(struct udevice *dev)
 
        port->qdma = &eth->qdma[0];
 
+       ret = airoha_fe_init(port);
+       if (ret)
+               return ret;
+
        return 0;
 }
 
-- 
2.51.0

Reply via email to