r8169: align RTL8125 EEE config with vendor driver
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 31 Oct 2024 21:42:52 +0000 (22:42 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sun, 3 Nov 2024 22:47:23 +0000 (14:47 -0800)
Align the EEE config for RTL8125A/RTL8125B with vendor driver r8125.
This should help to avoid compatibility issues.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://patch.msgid.link/044c925e-8669-4b98-87df-95b4056f4f5f@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/realtek/r8169_phy_config.c

index 8739f4b42aaf76079fa6a3958cf549795ac8a4c5..a0ecfa9c60aec7c0af0c098fd5a4aaff561ac4eb 100644 (file)
@@ -89,19 +89,25 @@ static void rtl8168h_config_eee_phy(struct phy_device *phydev)
        phy_modify_paged(phydev, 0xa42, 0x14, 0x0000, 0x0080);
 }
 
-static void rtl8125a_config_eee_phy(struct phy_device *phydev)
+static void rtl8125_common_config_eee_phy(struct phy_device *phydev)
 {
-       rtl8168h_config_eee_phy(phydev);
+       phy_modify_paged(phydev, 0xa6d, 0x14, 0x0010, 0x0000);
+       phy_modify_paged(phydev, 0xa42, 0x14, 0x0080, 0x0000);
+       phy_modify_paged(phydev, 0xa4a, 0x11, 0x0200, 0x0000);
+}
 
+static void rtl8125a_config_eee_phy(struct phy_device *phydev)
+{
+       rtl8168g_config_eee_phy(phydev);
+       /* disable EEE at 2.5Gbps */
        phy_modify_paged(phydev, 0xa6d, 0x12, 0x0001, 0x0000);
-       phy_modify_paged(phydev, 0xa6d, 0x14, 0x0010, 0x0000);
+       rtl8125_common_config_eee_phy(phydev);
 }
 
 static void rtl8125b_config_eee_phy(struct phy_device *phydev)
 {
-       phy_modify_paged(phydev, 0xa6d, 0x14, 0x0010, 0x0000);
-       phy_modify_paged(phydev, 0xa42, 0x14, 0x0080, 0x0000);
-       phy_modify_paged(phydev, 0xa4a, 0x11, 0x0200, 0x0000);
+       rtl8168g_config_eee_phy(phydev);
+       rtl8125_common_config_eee_phy(phydev);
 }
 
 static void rtl8169s_hw_phy_config(struct rtl8169_private *tp,