]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
r8169: add support for RTL8125D rev.b
authorChunHao Lin <hau@realtek.com>
Fri, 13 Dec 2024 19:02:58 +0000 (20:02 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 17 Dec 2024 02:27:34 +0000 (18:27 -0800)
Add support for RTL8125D rev.b. Its XID is 0x689. It is basically
based on the one with XID 0x688, but with different firmware file.

Signed-off-by: ChunHao Lin <hau@realtek.com>
[hkallweit1@gmail.com: rebased after adjusted version numbering]
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/75e5e9ec-d01f-43ac-b0f4-e7456baf18d1@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/realtek/r8169.h
drivers/net/ethernet/realtek/r8169_main.c
drivers/net/ethernet/realtek/r8169_phy_config.c

index 00d74e76c6f2ea3076894d4825e79dc1946a12d0..e0817f2a311adcd334dfb545467ada26e373050b 100644 (file)
@@ -69,6 +69,7 @@ enum mac_version {
        RTL_GIGA_MAC_VER_61,
        RTL_GIGA_MAC_VER_63,
        RTL_GIGA_MAC_VER_64,
+       RTL_GIGA_MAC_VER_65,
        RTL_GIGA_MAC_VER_70,
        RTL_GIGA_MAC_VER_71,
        RTL_GIGA_MAC_NONE
index d153fa5598d5a148df206027ed4b80997a5b9d84..5724f650f9c6a0230cb780ddc506bc932ea3f89b 100644 (file)
@@ -57,6 +57,7 @@
 #define FIRMWARE_8125A_3       "rtl_nic/rtl8125a-3.fw"
 #define FIRMWARE_8125B_2       "rtl_nic/rtl8125b-2.fw"
 #define FIRMWARE_8125D_1       "rtl_nic/rtl8125d-1.fw"
+#define FIRMWARE_8125D_2       "rtl_nic/rtl8125d-2.fw"
 #define FIRMWARE_8126A_2       "rtl_nic/rtl8126a-2.fw"
 #define FIRMWARE_8126A_3       "rtl_nic/rtl8126a-3.fw"
 
@@ -140,6 +141,7 @@ static const struct {
        /* reserve 62 for CFG_METHOD_4 in the vendor driver */
        [RTL_GIGA_MAC_VER_63] = {"RTL8125B",            FIRMWARE_8125B_2},
        [RTL_GIGA_MAC_VER_64] = {"RTL8125D",            FIRMWARE_8125D_1},
+       [RTL_GIGA_MAC_VER_65] = {"RTL8125D",            FIRMWARE_8125D_2},
        [RTL_GIGA_MAC_VER_70] = {"RTL8126A",            FIRMWARE_8126A_2},
        [RTL_GIGA_MAC_VER_71] = {"RTL8126A",            FIRMWARE_8126A_3},
 };
@@ -706,6 +708,7 @@ MODULE_FIRMWARE(FIRMWARE_8107E_2);
 MODULE_FIRMWARE(FIRMWARE_8125A_3);
 MODULE_FIRMWARE(FIRMWARE_8125B_2);
 MODULE_FIRMWARE(FIRMWARE_8125D_1);
+MODULE_FIRMWARE(FIRMWARE_8125D_2);
 MODULE_FIRMWARE(FIRMWARE_8126A_2);
 MODULE_FIRMWARE(FIRMWARE_8126A_3);
 
@@ -2259,6 +2262,7 @@ static enum mac_version rtl8169_get_mac_version(u16 xid, bool gmii)
                { 0x7cf, 0x649, RTL_GIGA_MAC_VER_70 },
 
                /* 8125D family. */
+               { 0x7cf, 0x689, RTL_GIGA_MAC_VER_65 },
                { 0x7cf, 0x688, RTL_GIGA_MAC_VER_64 },
 
                /* 8125B family. */
@@ -3837,6 +3841,7 @@ static void rtl_hw_config(struct rtl8169_private *tp)
                [RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125a_2,
                [RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b,
                [RTL_GIGA_MAC_VER_64] = rtl_hw_start_8125d,
+               [RTL_GIGA_MAC_VER_65] = rtl_hw_start_8125d,
                [RTL_GIGA_MAC_VER_70] = rtl_hw_start_8126a,
                [RTL_GIGA_MAC_VER_71] = rtl_hw_start_8126a,
        };
@@ -3855,6 +3860,7 @@ static void rtl_hw_start_8125(struct rtl8169_private *tp)
        switch (tp->mac_version) {
        case RTL_GIGA_MAC_VER_61:
        case RTL_GIGA_MAC_VER_64:
+       case RTL_GIGA_MAC_VER_65:
                for (i = 0xa00; i < 0xb00; i += 4)
                        RTL_W32(tp, i, 0);
                break;
index bc498ea78034280d679bf7d17008da84b3c94275..968c8a2185a47277ef71ac94671bf981cb8b508f 100644 (file)
@@ -1162,6 +1162,7 @@ void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev,
                [RTL_GIGA_MAC_VER_61] = rtl8125a_2_hw_phy_config,
                [RTL_GIGA_MAC_VER_63] = rtl8125b_hw_phy_config,
                [RTL_GIGA_MAC_VER_64] = rtl8125d_hw_phy_config,
+               [RTL_GIGA_MAC_VER_65] = rtl8125d_hw_phy_config,
                [RTL_GIGA_MAC_VER_70] = rtl8126a_hw_phy_config,
                [RTL_GIGA_MAC_VER_71] = rtl8126a_hw_phy_config,
        };