[PATCH v2 02/12] net/r8169: tune RX desc fetch num for 8126 and 8127

Howard Wang howard_wang at realsil.com.cn
Tue Feb 10 06:55:01 CET 2026


For RTL8126: Tune RX descriptor fetch number to 20.
For RTL8127: Tune RX descriptor fetch number to 12.

Signed-off-by: Howard Wang <howard_wang at realsil.com.cn>
---
 drivers/net/r8169/base/rtl8126a.c | 4 ++--
 drivers/net/r8169/base/rtl8127.c  | 2 +-
 drivers/net/r8169/r8169_compat.h  | 2 ++
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/r8169/base/rtl8126a.c b/drivers/net/r8169/base/rtl8126a.c
index 047ef83587..58b1cc2664 100644
--- a/drivers/net/r8169/base/rtl8126a.c
+++ b/drivers/net/r8169/base/rtl8126a.c
@@ -14,12 +14,12 @@ hw_init_rxcfg_8126a(struct rtl_hw *hw)
 {
 	switch (hw->mcfg) {
 	case CFG_METHOD_69:
-		RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | RxCfg_pause_slot_en |
+		RTL_W32(hw, RxConfig, Rx_Fetch_Number_20 | RxCfg_pause_slot_en |
 			(RX_DMA_BURST_512 << RxCfgDMAShift));
 		break;
 	case CFG_METHOD_70:
 	case CFG_METHOD_71:
-		RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | Rx_Close_Multiple |
+		RTL_W32(hw, RxConfig, Rx_Fetch_Number_20 | Rx_Close_Multiple |
 			RxCfg_pause_slot_en | (RX_DMA_BURST_512 << RxCfgDMAShift));
 		break;
 	}
diff --git a/drivers/net/r8169/base/rtl8127.c b/drivers/net/r8169/base/rtl8127.c
index 9e79255e3c..26c2cfd25b 100644
--- a/drivers/net/r8169/base/rtl8127.c
+++ b/drivers/net/r8169/base/rtl8127.c
@@ -14,7 +14,7 @@ hw_init_rxcfg_8127(struct rtl_hw *hw)
 {
 	switch (hw->mcfg) {
 	case CFG_METHOD_91:
-		RTL_W32(hw, RxConfig, Rx_Fetch_Number_8 | Rx_Close_Multiple |
+		RTL_W32(hw, RxConfig, Rx_Fetch_Number_12 | Rx_Close_Multiple |
 			RxCfg_pause_slot_en | (RX_DMA_BURST_512 << RxCfgDMAShift));
 		break;
 	}
diff --git a/drivers/net/r8169/r8169_compat.h b/drivers/net/r8169/r8169_compat.h
index 9163c7f59f..ab6a984a54 100644
--- a/drivers/net/r8169/r8169_compat.h
+++ b/drivers/net/r8169/r8169_compat.h
@@ -563,6 +563,8 @@ enum RTL_chipset_name {
 #define TX_DMA_BURST_16     0
 #define InterFrameGap       0x03    /* 3 means InterFrameGap = the shortest one */
 #define Rx_Fetch_Number_8  (1 << 30)
+#define Rx_Fetch_Number_12  (BIT_30 | BIT_29)
+#define Rx_Fetch_Number_20  (BIT_31 | BIT_29)
 #define Rx_Close_Multiple  (1 << 21)
 #define RxEarly_off_V2	   (1 << 11)
 #define Rx_Single_fetch_V2 (1 << 14)
-- 
2.34.1



More information about the dev mailing list