55
55
#define FIRMWARE_8107E_2 "rtl_nic/rtl8107e-2.fw"
56
56
#define FIRMWARE_8125A_3 "rtl_nic/rtl8125a-3.fw"
57
57
#define FIRMWARE_8125B_2 "rtl_nic/rtl8125b-2.fw"
58
+ #define FIRMWARE_8125D_1 "rtl_nic/rtl8125d-1.fw"
58
59
#define FIRMWARE_8126A_2 "rtl_nic/rtl8126a-2.fw"
59
60
#define FIRMWARE_8126A_3 "rtl_nic/rtl8126a-3.fw"
60
61
@@ -138,6 +139,7 @@ static const struct {
138
139
[RTL_GIGA_MAC_VER_61 ] = {"RTL8125A" , FIRMWARE_8125A_3 },
139
140
/* reserve 62 for CFG_METHOD_4 in the vendor driver */
140
141
[RTL_GIGA_MAC_VER_63 ] = {"RTL8125B" , FIRMWARE_8125B_2 },
142
+ [RTL_GIGA_MAC_VER_64 ] = {"RTL8125D" , FIRMWARE_8125D_1 },
141
143
[RTL_GIGA_MAC_VER_65 ] = {"RTL8126A" , FIRMWARE_8126A_2 },
142
144
[RTL_GIGA_MAC_VER_66 ] = {"RTL8126A" , FIRMWARE_8126A_3 },
143
145
};
@@ -707,6 +709,7 @@ MODULE_FIRMWARE(FIRMWARE_8168FP_3);
707
709
MODULE_FIRMWARE (FIRMWARE_8107E_2 );
708
710
MODULE_FIRMWARE (FIRMWARE_8125A_3 );
709
711
MODULE_FIRMWARE (FIRMWARE_8125B_2 );
712
+ MODULE_FIRMWARE (FIRMWARE_8125D_1 );
710
713
MODULE_FIRMWARE (FIRMWARE_8126A_2 );
711
714
MODULE_FIRMWARE (FIRMWARE_8126A_3 );
712
715
@@ -2098,10 +2101,7 @@ static void rtl_set_eee_txidle_timer(struct rtl8169_private *tp)
2098
2101
tp -> tx_lpi_timer = timer_val ;
2099
2102
r8168_mac_ocp_write (tp , 0xe048 , timer_val );
2100
2103
break ;
2101
- case RTL_GIGA_MAC_VER_61 :
2102
- case RTL_GIGA_MAC_VER_63 :
2103
- case RTL_GIGA_MAC_VER_65 :
2104
- case RTL_GIGA_MAC_VER_66 :
2104
+ case RTL_GIGA_MAC_VER_61 ... RTL_GIGA_MAC_VER_66 :
2105
2105
tp -> tx_lpi_timer = timer_val ;
2106
2106
RTL_W16 (tp , EEE_TXIDLE_TIMER_8125 , timer_val );
2107
2107
break ;
@@ -2233,6 +2233,9 @@ static enum mac_version rtl8169_get_mac_version(u16 xid, bool gmii)
2233
2233
{ 0x7cf , 0x64a , RTL_GIGA_MAC_VER_66 },
2234
2234
{ 0x7cf , 0x649 , RTL_GIGA_MAC_VER_65 },
2235
2235
2236
+ /* 8125D family. */
2237
+ { 0x7cf , 0x688 , RTL_GIGA_MAC_VER_64 },
2238
+
2236
2239
/* 8125B family. */
2237
2240
{ 0x7cf , 0x641 , RTL_GIGA_MAC_VER_63 },
2238
2241
@@ -2500,9 +2503,7 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp)
2500
2503
case RTL_GIGA_MAC_VER_61 :
2501
2504
RTL_W32 (tp , RxConfig , RX_FETCH_DFLT_8125 | RX_DMA_BURST );
2502
2505
break ;
2503
- case RTL_GIGA_MAC_VER_63 :
2504
- case RTL_GIGA_MAC_VER_65 :
2505
- case RTL_GIGA_MAC_VER_66 :
2506
+ case RTL_GIGA_MAC_VER_63 ... RTL_GIGA_MAC_VER_66 :
2506
2507
RTL_W32 (tp , RxConfig , RX_FETCH_DFLT_8125 | RX_DMA_BURST |
2507
2508
RX_PAUSE_SLOT_ON );
2508
2509
break ;
@@ -3840,6 +3841,12 @@ static void rtl_hw_start_8125b(struct rtl8169_private *tp)
3840
3841
rtl_hw_start_8125_common (tp );
3841
3842
}
3842
3843
3844
+ static void rtl_hw_start_8125d (struct rtl8169_private * tp )
3845
+ {
3846
+ rtl_set_def_aspm_entry_latency (tp );
3847
+ rtl_hw_start_8125_common (tp );
3848
+ }
3849
+
3843
3850
static void rtl_hw_start_8126a (struct rtl8169_private * tp )
3844
3851
{
3845
3852
rtl_disable_zrxdc_timeout (tp );
@@ -3889,6 +3896,7 @@ static void rtl_hw_config(struct rtl8169_private *tp)
3889
3896
[RTL_GIGA_MAC_VER_53 ] = rtl_hw_start_8117 ,
3890
3897
[RTL_GIGA_MAC_VER_61 ] = rtl_hw_start_8125a_2 ,
3891
3898
[RTL_GIGA_MAC_VER_63 ] = rtl_hw_start_8125b ,
3899
+ [RTL_GIGA_MAC_VER_64 ] = rtl_hw_start_8125d ,
3892
3900
[RTL_GIGA_MAC_VER_65 ] = rtl_hw_start_8126a ,
3893
3901
[RTL_GIGA_MAC_VER_66 ] = rtl_hw_start_8126a ,
3894
3902
};
@@ -3906,6 +3914,7 @@ static void rtl_hw_start_8125(struct rtl8169_private *tp)
3906
3914
/* disable interrupt coalescing */
3907
3915
switch (tp -> mac_version ) {
3908
3916
case RTL_GIGA_MAC_VER_61 :
3917
+ case RTL_GIGA_MAC_VER_64 :
3909
3918
for (i = 0xa00 ; i < 0xb00 ; i += 4 )
3910
3919
RTL_W32 (tp , i , 0 );
3911
3920
break ;
0 commit comments