r8169: align RTL8125/RTL8126 PHY config with vendor driver
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 31 Oct 2024 21:43:45 +0000 (22:43 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sun, 3 Nov 2024 22:47:24 +0000 (14:47 -0800)
This aligns some parameters with vendor driver r8125/r8126 to avoid
compatibility issues. Note that for RTL8125B there's no functional
change, just the open-coded version of the function is replaced.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://patch.msgid.link/a8a9d896-fbe6-41f2-bf87-666567d3cdb3@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/realtek/r8169_phy_config.c

index a0ecfa9c60aec7c0af0c098fd5a4aaff561ac4eb..54b254b9bf6c1a64d9b19356180daf12e33cf922 100644 (file)
@@ -1073,8 +1073,8 @@ static void rtl8125b_hw_phy_config(struct rtl8169_private *tp,
                                   struct phy_device *phydev)
 {
        r8169_apply_firmware(tp);
+       rtl8168g_enable_gphy_10m(phydev);
 
-       phy_modify_paged(phydev, 0xa44, 0x11, 0x0000, 0x0800);
        phy_modify_paged(phydev, 0xac4, 0x13, 0x00f0, 0x0090);
        phy_modify_paged(phydev, 0xad3, 0x10, 0x0003, 0x0001);
 
@@ -1113,6 +1113,7 @@ static void rtl8125d_hw_phy_config(struct rtl8169_private *tp,
                                   struct phy_device *phydev)
 {
        r8169_apply_firmware(tp);
+       rtl8168g_enable_gphy_10m(phydev);
        rtl8125_legacy_force_mode(phydev);
        rtl8168g_disable_aldps(phydev);
        rtl8125b_config_eee_phy(phydev);
@@ -1122,6 +1123,9 @@ static void rtl8126a_hw_phy_config(struct rtl8169_private *tp,
                                   struct phy_device *phydev)
 {
        r8169_apply_firmware(tp);
+       rtl8168g_enable_gphy_10m(phydev);
+       rtl8125_legacy_force_mode(phydev);
+       rtl8168g_disable_aldps(phydev);
 }
 
 void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev,