net: mediatek: don't enable GDMA cpu bridge unconditionally for NETSYSv3
authorWeijie Gao <weijie.gao@mediatek.com>
Tue, 17 Dec 2024 08:39:59 +0000 (16:39 +0800)
committerTom Rini <trini@konsulko.com>
Tue, 31 Dec 2024 16:58:52 +0000 (10:58 -0600)
Enable GDMA cpu bridge only when 10Gb interface is enabled for GMAC other
than GMAC0, or when MT7988 internal switch is used.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
drivers/net/mtk_eth.c

index d3f29e4..888e8c1 100644 (file)
@@ -1762,10 +1762,16 @@ static int mtk_eth_start(struct udevice *dev)
                if (priv->sw == SW_MT7988 && priv->gmac_id == 0) {
                        mtk_gdma_write(priv, priv->gmac_id, GDMA_IG_CTRL_REG,
                                       GDMA_BRIDGE_TO_CPU);
-               }
 
-               mtk_gdma_write(priv, priv->gmac_id, GDMA_EG_CTRL_REG,
-                              GDMA_CPU_BRIDGE_EN);
+                       mtk_gdma_write(priv, priv->gmac_id, GDMA_EG_CTRL_REG,
+                                      GDMA_CPU_BRIDGE_EN);
+               } else if ((priv->phy_interface == PHY_INTERFACE_MODE_USXGMII ||
+                           priv->phy_interface == PHY_INTERFACE_MODE_10GBASER ||
+                           priv->phy_interface == PHY_INTERFACE_MODE_XGMII) &&
+                          priv->gmac_id != 0) {
+                       mtk_gdma_write(priv, priv->gmac_id, GDMA_EG_CTRL_REG,
+                                      GDMA_CPU_BRIDGE_EN);
+               }
        }
 
        udelay(500);