The PHY setting for MT7988 are actually never configured for the
affected PHY as we are read/writing to the wrong PHY address.

This is caused by the fact that we use the index of the NUM_PHYS loop as
the PHY address without first offsetting it to the base address.

Correctly offset the PHY address before configuring the PHY setting.

Signed-off-by: Christian Marangi <[email protected]>
---
 drivers/net/mtk_eth/mt7988.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/mtk_eth/mt7988.c b/drivers/net/mtk_eth/mt7988.c
index a416d87840c..bc58462af26 100644
--- a/drivers/net/mtk_eth/mt7988.c
+++ b/drivers/net/mtk_eth/mt7988.c
@@ -34,16 +34,18 @@ static void mt7988_phy_setting(struct mt753x_switch_priv 
*priv)
        u32 i;
 
        for (i = 0; i < MT753X_NUM_PHYS; i++) {
+               u16 addr = MT753X_PHY_ADDR(priv->phy_base, i);
+
                /* Enable HW auto downshift */
-               mt7531_mii_write(priv, i, 0x1f, 0x1);
-               val = mt7531_mii_read(priv, i, PHY_EXT_REG_14);
+               mt7531_mii_write(priv, addr, 0x1f, 0x1);
+               val = mt7531_mii_read(priv, addr, PHY_EXT_REG_14);
                val |= PHY_EN_DOWN_SHFIT;
-               mt7531_mii_write(priv, i, PHY_EXT_REG_14, val);
+               mt7531_mii_write(priv, addr, PHY_EXT_REG_14, val);
 
                /* PHY link down power saving enable */
-               val = mt7531_mii_read(priv, i, PHY_EXT_REG_17);
+               val = mt7531_mii_read(priv, addr, PHY_EXT_REG_17);
                val |= PHY_LINKDOWN_POWER_SAVING_EN;
-               mt7531_mii_write(priv, i, PHY_EXT_REG_17, val);
+               mt7531_mii_write(priv, addr, PHY_EXT_REG_17, val);
        }
 }
 
-- 
2.51.0

Reply via email to