]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw88: Fix RX aggregation settings for RTL8723DS
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Fri, 2 May 2025 11:49:01 +0000 (14:49 +0300)
committerPing-Ke Shih <pkshih@realtek.com>
Sat, 10 May 2025 00:43:49 +0000 (08:43 +0800)
Use the same RX aggregation size and timeout used by the out-of-tree
RTL8723DS driver. Also set mystery bit 31 of REG_RXDMA_AGG_PG_TH. This
improves the RX speed from ~44 Mbps to ~67 Mbps.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/4c79fdc1-54bc-4986-9931-bb3ceb418b97@gmail.com
drivers/net/wireless/realtek/rtw88/sdio.c

index c57f683d9af8195b0ff8b078e61b0b3519eec74c..71cbe49b6c59d4c0defaa9f0b16d46af36e141bc 100644 (file)
@@ -677,12 +677,22 @@ static void rtw_sdio_enable_rx_aggregation(struct rtw_dev *rtwdev)
 {
        u8 size, timeout;
 
-       if (rtw_chip_wcpu_11n(rtwdev)) {
+       switch (rtwdev->chip->id) {
+       case RTW_CHIP_TYPE_8703B:
+       case RTW_CHIP_TYPE_8821A:
+       case RTW_CHIP_TYPE_8812A:
                size = 0x6;
                timeout = 0x6;
-       } else {
+               break;
+       case RTW_CHIP_TYPE_8723D:
+               size = 0xa;
+               timeout = 0x3;
+               rtw_write8_set(rtwdev, REG_RXDMA_AGG_PG_TH + 3, BIT(7));
+               break;
+       default:
                size = 0xff;
                timeout = 0x1;
+               break;
        }
 
        /* Make the firmware honor the size limit configured below */