Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

r8169: add support for RTL8125cp

This patch adds support for chip RTL8125cp. Its XID is 0x708. We apply
different configuration and firmware for RTL8125cp.

Signed-off-by: Javen Xu <javen_xu@realsil.com.cn>
Link: https://patch.msgid.link/20260303094611.450-1-javen_xu@realsil.com.cn
[pabeni@redhat.com: changelog cleanup]
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Javen Xu and committed by
Paolo Abeni
a90e3029 70836c8d

+34
+1
drivers/net/ethernet/realtek/r8169.h
··· 68 68 RTL_GIGA_MAC_VER_61, 69 69 RTL_GIGA_MAC_VER_63, 70 70 RTL_GIGA_MAC_VER_64, 71 + RTL_GIGA_MAC_VER_65, 71 72 RTL_GIGA_MAC_VER_66, 72 73 RTL_GIGA_MAC_VER_70, 73 74 RTL_GIGA_MAC_VER_80,
+7
drivers/net/ethernet/realtek/r8169_main.c
··· 60 60 #define FIRMWARE_8125D_2 "rtl_nic/rtl8125d-2.fw" 61 61 #define FIRMWARE_8125K_1 "rtl_nic/rtl8125k-1.fw" 62 62 #define FIRMWARE_8125BP_2 "rtl_nic/rtl8125bp-2.fw" 63 + #define FIRMWARE_8125CP_1 "rtl_nic/rtl8125cp-1.fw" 63 64 #define FIRMWARE_9151A_1 "rtl_nic/rtl9151a-1.fw" 64 65 #define FIRMWARE_8126A_2 "rtl_nic/rtl8126a-2.fw" 65 66 #define FIRMWARE_8126A_3 "rtl_nic/rtl8126a-3.fw" ··· 112 111 113 112 /* 8125BP family. */ 114 113 { 0x7cf, 0x681, RTL_GIGA_MAC_VER_66, "RTL8125BP", FIRMWARE_8125BP_2 }, 114 + 115 + /* 8125CP family*/ 116 + { 0x7cf, 0x708, RTL_GIGA_MAC_VER_65, "RTL8125CP", FIRMWARE_8125CP_1 }, 115 117 116 118 /* 8125D family. */ 117 119 { 0x7cf, 0x68b, RTL_GIGA_MAC_VER_64, "RTL9151A", FIRMWARE_9151A_1 }, ··· 806 802 MODULE_FIRMWARE(FIRMWARE_8125D_2); 807 803 MODULE_FIRMWARE(FIRMWARE_8125K_1); 808 804 MODULE_FIRMWARE(FIRMWARE_8125BP_2); 805 + MODULE_FIRMWARE(FIRMWARE_8125CP_1); 809 806 MODULE_FIRMWARE(FIRMWARE_9151A_1); 810 807 MODULE_FIRMWARE(FIRMWARE_8126A_2); 811 808 MODULE_FIRMWARE(FIRMWARE_8126A_3); ··· 4026 4021 [RTL_GIGA_MAC_VER_61] = rtl_hw_start_8125a_2, 4027 4022 [RTL_GIGA_MAC_VER_63] = rtl_hw_start_8125b, 4028 4023 [RTL_GIGA_MAC_VER_64] = rtl_hw_start_8125d, 4024 + [RTL_GIGA_MAC_VER_65] = rtl_hw_start_8125d, 4029 4025 [RTL_GIGA_MAC_VER_66] = rtl_hw_start_8125d, 4030 4026 [RTL_GIGA_MAC_VER_70] = rtl_hw_start_8126a, 4031 4027 [RTL_GIGA_MAC_VER_80] = rtl_hw_start_8127a, ··· 4046 4040 switch (tp->mac_version) { 4047 4041 case RTL_GIGA_MAC_VER_61: 4048 4042 case RTL_GIGA_MAC_VER_64: 4043 + case RTL_GIGA_MAC_VER_65: 4049 4044 case RTL_GIGA_MAC_VER_66: 4050 4045 case RTL_GIGA_MAC_VER_80: 4051 4046 for (i = 0xa00; i < 0xb00; i += 4)
+26
drivers/net/ethernet/realtek/r8169_phy_config.c
··· 14 14 15 15 #include "r8169.h" 16 16 17 + #define LINK_SPEED_10M_PLL_OFF BIT(0) 18 + #define ALDPS_PLL_OFF BIT(1) 19 + 17 20 typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *tp, 18 21 struct phy_device *phydev); 19 22 ··· 1105 1102 rtl8125_config_eee_phy(phydev); 1106 1103 } 1107 1104 1105 + static void rtl8125cp_hw_phy_config(struct rtl8169_private *tp, 1106 + struct phy_device *phydev) 1107 + { 1108 + r8169_apply_firmware(tp); 1109 + rtl8168g_enable_gphy_10m(phydev); 1110 + 1111 + phy_modify_paged(phydev, 0xad0, 0x17, 0x007f, 0x000b); 1112 + phy_modify_paged(phydev, 0xad7, 0x14, 0x0000, BIT(4)); 1113 + rtl8125_phy_param(phydev, 0x807f, 0xff00, 0x5300); 1114 + r8168g_phy_param(phydev, 0x81b8, 0xffff, 0x00b4); 1115 + r8168g_phy_param(phydev, 0x81ba, 0xffff, 0x00e4); 1116 + r8168g_phy_param(phydev, 0x81c5, 0xffff, 0x0104); 1117 + r8168g_phy_param(phydev, 0x81d0, 0xffff, 0x054d); 1118 + phy_modify_paged(phydev, 0x0a43, 0x10, 0x0000, 1119 + LINK_SPEED_10M_PLL_OFF | ALDPS_PLL_OFF); 1120 + phy_modify_paged(phydev, 0x0a44, 0x11, 0x0000, BIT(7)); 1121 + 1122 + rtl8125_legacy_force_mode(phydev); 1123 + rtl8168g_disable_aldps(phydev); 1124 + rtl8125_config_eee_phy(phydev); 1125 + } 1126 + 1108 1127 static void rtl8125bp_hw_phy_config(struct rtl8169_private *tp, 1109 1128 struct phy_device *phydev) 1110 1129 { ··· 1369 1344 [RTL_GIGA_MAC_VER_61] = rtl8125a_2_hw_phy_config, 1370 1345 [RTL_GIGA_MAC_VER_63] = rtl8125b_hw_phy_config, 1371 1346 [RTL_GIGA_MAC_VER_64] = rtl8125d_hw_phy_config, 1347 + [RTL_GIGA_MAC_VER_65] = rtl8125cp_hw_phy_config, 1372 1348 [RTL_GIGA_MAC_VER_66] = rtl8125bp_hw_phy_config, 1373 1349 [RTL_GIGA_MAC_VER_70] = rtl8126a_hw_phy_config, 1374 1350 [RTL_GIGA_MAC_VER_80] = rtl8127a_1_hw_phy_config,