[][Fix ethernet bring up issue for MT7622]
[Description]
Fix ethernet bring up issue for MT7622
1. Add condition check before registering FE Interrupt.
2. Add condition check before accessing SGMII.
3. Bypass DMA monitor for NETSYSv1.
[Release-log]
N/A
Change-Id: Ie3327b879db03da9703c128ce77260705e12785e
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6006420
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c
index 4df1892..391cc1d 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_eth_reset.c
@@ -323,12 +323,14 @@
mtk_w32(eth, val & ~(MTK_TX_DMA_EN), MTK_QDMA_GLO_CFG);
/* Power down sgmii */
- regmap_read(eth->sgmii->regmap[0], SGMSYS_QPHY_PWR_STATE_CTRL, &val);
- val |= SGMII_PHYA_PWD;
- regmap_write(eth->sgmii->regmap[0], SGMSYS_QPHY_PWR_STATE_CTRL, val);
- regmap_read(eth->sgmii->regmap[1], SGMSYS_QPHY_PWR_STATE_CTRL, &val);
- val |= SGMII_PHYA_PWD;
- regmap_write(eth->sgmii->regmap[1], SGMSYS_QPHY_PWR_STATE_CTRL, val);
+ for (i = 0; i < MTK_MAX_DEVS; i++) {
+ if (!eth->sgmii->regmap[i])
+ continue;
+
+ regmap_read(eth->sgmii->regmap[i], SGMSYS_QPHY_PWR_STATE_CTRL, &val);
+ val |= SGMII_PHYA_PWD;
+ regmap_write(eth->sgmii->regmap[i], SGMSYS_QPHY_PWR_STATE_CTRL, val);
+ }
/* Force link down GMAC */
val = mtk_r32(eth, MTK_MAC_MCR(0));