Message ID | 24dacc36-cfc2-475a-8bc5-aad04cd97aa3@gmail.com |
---|---|
State | New |
Headers | show |
Series | [rtw-next,1/2] wifi: rtw88: Fix RX aggregation settings for RTL8723DS | expand |
Bitterblue Smith <rtl8821cerfe2@gmail.com> wrote: > 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> > --- > drivers/net/wireless/realtek/rtw88/sdio.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c > index c57f683d9af8..6f63fd5db665 100644 > --- a/drivers/net/wireless/realtek/rtw88/sdio.c > +++ b/drivers/net/wireless/realtek/rtw88/sdio.c > @@ -677,12 +677,20 @@ static void rtw_sdio_enable_rx_aggregation(struct rtw_dev *rtwdev) > { > u8 size, timeout; > > - if (rtw_chip_wcpu_11n(rtwdev)) { Originally this only affects 11n chips, but now it affects all chips by default case. Is that in your expectation? And have you tested chips other than RTL8723DS you mentioned in commit message. If so, please add them to commit message. > + switch (rtwdev->chip->id) { > + case RTW_CHIP_TYPE_8703B: > 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 */ > -- > 2.49.0
diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c index c57f683d9af8..6f63fd5db665 100644 --- a/drivers/net/wireless/realtek/rtw88/sdio.c +++ b/drivers/net/wireless/realtek/rtw88/sdio.c @@ -677,12 +677,20 @@ 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: 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 */
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> --- drivers/net/wireless/realtek/rtw88/sdio.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)