[][Fix Linux boot-up Ethernet watchdog timeout]
[Description]
Fix Linux boot-up Ethernet watchdog timeout issue
for Panther and Cheetah.
In some corner cases, SGMII power state might not
be well-released in boot-up sequence, which will
conseqeuntly lead to Tx timeout issue. So we need
to clear sgmii power control state to prevent that.
If without this patch, boot-up log might show
watchdog timeout warning in overnight tests.
[Release-log]
N/A
Change-Id: Id1f0f080f16b5201361a79228062727085448b79
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/5960109
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
index 50bdbd8..dacdf3c 100755
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
@@ -60,9 +60,8 @@
regmap_update_bits(ss->regmap[id], SGMSYS_QPHY_WRAP_CTRL,
SGMII_PN_SWAP_MASK, SGMII_PN_SWAP_TX_RX);
- regmap_read(ss->regmap[id], SGMSYS_QPHY_PWR_STATE_CTRL, &val);
- val &= ~SGMII_PHYA_PWD;
- regmap_write(ss->regmap[id], SGMSYS_QPHY_PWR_STATE_CTRL, val);
+ /* Release PHYA power down state */
+ regmap_write(ss->regmap[id], SGMSYS_QPHY_PWR_STATE_CTRL, 0);
return 0;
}
@@ -111,10 +110,9 @@
if(MTK_HAS_FLAGS(ss->flags[id],MTK_SGMII_PN_SWAP))
regmap_update_bits(ss->regmap[id], SGMSYS_QPHY_WRAP_CTRL,
SGMII_PN_SWAP_MASK, SGMII_PN_SWAP_TX_RX);
+
/* Release PHYA power down state */
- regmap_read(ss->regmap[id], SGMSYS_QPHY_PWR_STATE_CTRL, &val);
- val &= ~SGMII_PHYA_PWD;
- regmap_write(ss->regmap[id], SGMSYS_QPHY_PWR_STATE_CTRL, val);
+ regmap_write(ss->regmap[id], SGMSYS_QPHY_PWR_STATE_CTRL, 0);
return 0;
}