5656#define FIRMWARE_8107E_2 "rtl_nic/rtl8107e-2.fw"
5757#define FIRMWARE_8125A_3 "rtl_nic/rtl8125a-3.fw"
5858#define FIRMWARE_8125B_2 "rtl_nic/rtl8125b-2.fw"
59+ #define FIRMWARE_8125D_1 "rtl_nic/rtl8125d-1.fw"
5960#define FIRMWARE_8126A_2 "rtl_nic/rtl8126a-2.fw"
6061#define FIRMWARE_8126A_3 "rtl_nic/rtl8126a-3.fw"
6162
@@ -139,6 +140,7 @@ static const struct {
139140 [RTL_GIGA_MAC_VER_61 ] = {"RTL8125A" , FIRMWARE_8125A_3 },
140141 /* reserve 62 for CFG_METHOD_4 in the vendor driver */
141142 [RTL_GIGA_MAC_VER_63 ] = {"RTL8125B" , FIRMWARE_8125B_2 },
143+ [RTL_GIGA_MAC_VER_64 ] = {"RTL8125D" , FIRMWARE_8125D_1 },
142144 [RTL_GIGA_MAC_VER_65 ] = {"RTL8126A" , FIRMWARE_8126A_2 },
143145 [RTL_GIGA_MAC_VER_66 ] = {"RTL8126A" , FIRMWARE_8126A_3 },
144146};
@@ -707,6 +709,7 @@ MODULE_FIRMWARE(FIRMWARE_8168FP_3);
707709MODULE_FIRMWARE (FIRMWARE_8107E_2 );
708710MODULE_FIRMWARE (FIRMWARE_8125A_3 );
709711MODULE_FIRMWARE (FIRMWARE_8125B_2 );
712+ MODULE_FIRMWARE (FIRMWARE_8125D_1 );
710713MODULE_FIRMWARE (FIRMWARE_8126A_2 );
711714MODULE_FIRMWARE (FIRMWARE_8126A_3 );
712715
@@ -2079,10 +2082,7 @@ static void rtl_set_eee_txidle_timer(struct rtl8169_private *tp)
20792082 tp -> tx_lpi_timer = timer_val ;
20802083 r8168_mac_ocp_write (tp , 0xe048 , timer_val );
20812084 break ;
2082- case RTL_GIGA_MAC_VER_61 :
2083- case RTL_GIGA_MAC_VER_63 :
2084- case RTL_GIGA_MAC_VER_65 :
2085- case RTL_GIGA_MAC_VER_66 :
2085+ case RTL_GIGA_MAC_VER_61 ... RTL_GIGA_MAC_VER_66 :
20862086 tp -> tx_lpi_timer = timer_val ;
20872087 RTL_W16 (tp , EEE_TXIDLE_TIMER_8125 , timer_val );
20882088 break ;
@@ -2293,6 +2293,9 @@ static enum mac_version rtl8169_get_mac_version(u16 xid, bool gmii)
22932293 { 0x7cf , 0x64a , RTL_GIGA_MAC_VER_66 },
22942294 { 0x7cf , 0x649 , RTL_GIGA_MAC_VER_65 },
22952295
2296+ /* 8125D family. */
2297+ { 0x7cf , 0x688 , RTL_GIGA_MAC_VER_64 },
2298+
22962299 /* 8125B family. */
22972300 { 0x7cf , 0x641 , RTL_GIGA_MAC_VER_63 },
22982301
@@ -2558,9 +2561,7 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp)
25582561 case RTL_GIGA_MAC_VER_61 :
25592562 RTL_W32 (tp , RxConfig , RX_FETCH_DFLT_8125 | RX_DMA_BURST );
25602563 break ;
2561- case RTL_GIGA_MAC_VER_63 :
2562- case RTL_GIGA_MAC_VER_65 :
2563- case RTL_GIGA_MAC_VER_66 :
2564+ case RTL_GIGA_MAC_VER_63 ... RTL_GIGA_MAC_VER_66 :
25642565 RTL_W32 (tp , RxConfig , RX_FETCH_DFLT_8125 | RX_DMA_BURST |
25652566 RX_PAUSE_SLOT_ON );
25662567 break ;
@@ -3872,6 +3873,12 @@ static void rtl_hw_start_8125b(struct rtl8169_private *tp)
38723873 rtl_hw_start_8125_common (tp );
38733874}
38743875
3876+ static void rtl_hw_start_8125d (struct rtl8169_private * tp )
3877+ {
3878+ rtl_set_def_aspm_entry_latency (tp );
3879+ rtl_hw_start_8125_common (tp );
3880+ }
3881+
38753882static void rtl_hw_start_8126a (struct rtl8169_private * tp )
38763883{
38773884 rtl_set_def_aspm_entry_latency (tp );
@@ -3920,6 +3927,7 @@ static void rtl_hw_config(struct rtl8169_private *tp)
39203927 [RTL_GIGA_MAC_VER_53 ] = rtl_hw_start_8117 ,
39213928 [RTL_GIGA_MAC_VER_61 ] = rtl_hw_start_8125a_2 ,
39223929 [RTL_GIGA_MAC_VER_63 ] = rtl_hw_start_8125b ,
3930+ [RTL_GIGA_MAC_VER_64 ] = rtl_hw_start_8125d ,
39233931 [RTL_GIGA_MAC_VER_65 ] = rtl_hw_start_8126a ,
39243932 [RTL_GIGA_MAC_VER_66 ] = rtl_hw_start_8126a ,
39253933 };
@@ -3937,6 +3945,7 @@ static void rtl_hw_start_8125(struct rtl8169_private *tp)
39373945 /* disable interrupt coalescing */
39383946 switch (tp -> mac_version ) {
39393947 case RTL_GIGA_MAC_VER_61 :
3948+ case RTL_GIGA_MAC_VER_64 :
39403949 for (i = 0xa00 ; i < 0xb00 ; i += 4 )
39413950 RTL_W32 (tp , i , 0 );
39423951 break ;
0 commit comments