[PATCH 2/5] net: mediatek: mt7988: restore PHY page on PHY setting exit
Christian Marangi
ansuelsmth at gmail.com
Sat Sep 20 16:36:47 CEST 2025
On exiting the phy_setting function for MT7988, the PHY page is never
restored to Page 0. This can cause all kind of problem with reading the
status of the PHY at runtime.
Correctly restore PHY page on exiting the PHY setting function.
Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
drivers/net/mtk_eth/mt7988.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mtk_eth/mt7988.c b/drivers/net/mtk_eth/mt7988.c
index bc58462af26..74e16bf49e7 100644
--- a/drivers/net/mtk_eth/mt7988.c
+++ b/drivers/net/mtk_eth/mt7988.c
@@ -36,8 +36,10 @@ static void mt7988_phy_setting(struct mt753x_switch_priv *priv)
for (i = 0; i < MT753X_NUM_PHYS; i++) {
u16 addr = MT753X_PHY_ADDR(priv->phy_base, i);
- /* Enable HW auto downshift */
+ /* Set PHY to PHY page 1 */
mt7531_mii_write(priv, addr, 0x1f, 0x1);
+
+ /* Enable HW auto downshift */
val = mt7531_mii_read(priv, addr, PHY_EXT_REG_14);
val |= PHY_EN_DOWN_SHFIT;
mt7531_mii_write(priv, addr, PHY_EXT_REG_14, val);
@@ -46,6 +48,9 @@ static void mt7988_phy_setting(struct mt753x_switch_priv *priv)
val = mt7531_mii_read(priv, addr, PHY_EXT_REG_17);
val |= PHY_LINKDOWN_POWER_SAVING_EN;
mt7531_mii_write(priv, addr, PHY_EXT_REG_17, val);
+
+ /* Restore PHY to PHY page 0 */
+ mt7531_mii_write(priv, addr, 0x1f, 0x0);
}
}
--
2.51.0
More information about the U-Boot
mailing list