mirror-linux/drivers/net/wireless/realtek
Martin Blumenstingl cb0ddaaa5d wifi: rtw88: sdio: Always use two consecutive bytes for word operations
The Allwinner sunxi-mmc controller cannot handle word (16 bit)
transfers. So and sdio_{read,write}w fails with messages like the
following example using an RTL8822BS (but the same problems were also
observed with RTL8822CS and RTL8723DS chips):
  rtw_8822bs mmc1:0001:1: Firmware version 27.2.0, H2C version 13
  sunxi-mmc 4021000.mmc: unaligned scatterlist: os f80 length 2
  sunxi-mmc 4021000.mmc: map DMA failed
  rtw_8822bs mmc1:0001:1: sdio read16 failed (0x10230): -22

Use two consecutive single byte accesses for word operations instead. It
turns out that upon closer inspection this is also what the vendor
driver does, even though it does have support for sdio_{read,write}w. So
we can conclude that the rtw88 chips do support word access but only on
SDIO controllers that also support it. Since there's no way to detect if
the controller supports word access or not the rtw88 sdio driver
switches to the easiest approach: avoiding word access.

Reported-by: Larry Finger <Larry.Finger@lwfinger.net>
Closes: https://lore.kernel.org/linux-wireless/527585e5-9cdd-66ed-c3af-6da162f4b720@lwfinger.net/
Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
Link: https://github.com/LibreELEC/LibreELEC.tv/pull/7837#issue-1708469467
Fixes: 65371a3f14 ("wifi: rtw88: sdio: Add HCI implementation for SDIO based chipsets")
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230515195043.572375-1-martin.blumenstingl@googlemail.com
2023-05-17 09:09:41 +03:00
..
rtl8xxxu wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value 2023-05-15 21:19:21 +03:00
rtl818x wifi: mac80211: add wake_tx_queue callback to drivers 2022-10-10 11:00:03 +02:00
rtlwifi wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg() 2023-03-31 17:51:33 +03:00
rtw88 wifi: rtw88: sdio: Always use two consecutive bytes for word operations 2023-05-17 09:09:41 +03:00
rtw89 wifi: rtw89: 8852b: adjust quota to avoid SER L1 caused by access null page 2023-05-12 11:22:21 +03:00
Kconfig rtw89: add Realtek 802.11ax driver 2021-10-13 09:01:12 +03:00
Makefile rtw89: add Realtek 802.11ax driver 2021-10-13 09:01:12 +03:00