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 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 */