kernel: net: phy: realtek: improve RealTek 2.5G PHY driver
[openwrt/openwrt.git] / target / linux / generic / pending-5.15 / 725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch
index 7f2174e4d2bf4fdeb41fa521fcd1a09d36c581b4..1370c6324bba7cb4e38ef735999aad6ded5ffbbb 100644 (file)
@@ -26,17 +26,17 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +      int val;
  
        switch (phydev->interface) {
-       case PHY_INTERFACE_MODE_SGMII:
-@@ -906,6 +907,13 @@ static int rtl8221b_config_init(struct p
-                 break;
+       case PHY_INTERFACE_MODE_2500BASEX:
+@@ -911,6 +912,13 @@ static int rtl8221b_config_init(struct p
+               break;
        }
  
 +      /* Disable SGMII AN */
 +      phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7588, 0x2);
 +      phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7589, 0x71d0);
 +      phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7587, 0x3);
-+      phy_read_mmd_poll_timeout(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7587, val,
-+                                !(val & BIT(0)), 500, 100000, false);
++      phy_read_mmd_poll_timeout(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7587,
++                                val, !(val & BIT(0)), 500, 100000, false);
 +
        return 0;
  }