31 lines
1.2 KiB
Plaintext
31 lines
1.2 KiB
Plaintext
Certain Amlogic SDIO host controllers have a limit of
|
|
receiving/transmitting at most 1536 bytes at a time.
|
|
It turns out that rtw_sdio_enable_rx_aggregation() from rtw88/sdio.c
|
|
is not taking this into account currently.
|
|
For any RX buffer that is bigger than 1536 bytes (which can happen due
|
|
to RX aggregation) we're unable to do any processing on the host side
|
|
because all bytes beyond the 1536 bytes mark are lost.
|
|
|
|
Revert size and timout to RFC v1 patch until solution is found.
|
|
https://lore.kernel.org/linux-wireless/CAFBinCBaXtebixKbjkWKW_WXc5k=NdGNaGUjVE8NCPNxOhsb2g@mail.gmail.com/T/#u
|
|
|
|
Signed-off-by: Patrick Yavitz <pyavitz@gxxxx.com>
|
|
diff -Naur a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c
|
|
--- a/drivers/net/wireless/realtek/rtw88/sdio.c 2023-06-13 14:16:07.695892972 -0400
|
|
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c 2023-06-13 15:04:26.278383326 -0400
|
|
@@ -657,11 +657,11 @@
|
|
u8 size, timeout;
|
|
|
|
if (rtw_chip_wcpu_11n(rtwdev)) {
|
|
+ size = 0xff;
|
|
+ timeout = 0x20;
|
|
+ } else {
|
|
size = 0x6;
|
|
timeout = 0x6;
|
|
- } else {
|
|
- size = 0xff;
|
|
- timeout = 0x1;
|
|
}
|
|
|
|
/* Make the firmware honor the size limit configured below */
|