This patch set adds a driver for RTL8723CS, which is used in the Pinephone and a few other devices. It is a combined wifi/bluetooth device, the wifi part is called RTL8703B. There is already a mainline driver for the bluetooth part. RTL8703B is similar to the RTL8723D chip already supported by rtw88. I've been using the out-of-tree rtl8723cs driver as reference. Station and monitor mode work well enough for daily use on my Pinephone, I have not tested other modes yet. WOW firmware is declared, but WOW isn't implemented yet. RX rates stay fairly low still. Ping-Ke Shih kindly offered to add the required s-o-b for the firmware and help get it into linux-firmware when it's time, for testing now please see the code I used to extract firmware from the out-of-tree driver [1]. I'm trying to follow the "one file per patch" rule for new drivers while integrating with the existing rtw88 code, please let me know if I should split it differently. I'll be including a few questions for reviewers in the relevant patch mails. Thanks to Ping-Ke Shih for advice, and Ondřej Jirman for debug logs! Requests for testers: * I do not have any 8723d device. I made sure rtw88_8723d still compiles, testing would be very welcome to make sure I didn't break anything while moving common code to rtw8723x. * Does anyone actually get the "unexpected cck agc report type" warning? The out-of-tree driver also logs a warning and handles the 3 bit LNA index in that case, but the code could be simpler without the workaround if it isn't needed. * I've found mentions of RTL8703BS devices online which seem to be wifi-only SDIO devices using RTL8703B, and posts telling people they need to use the rtl8723cs driver to make them work. If anyone has one of those I'd be curious if this driver works with it. [1] https://github.com/airtower-luna/rtw8703b-fw-extractor Fiona Klute (9): wifi: rtw88: Shared module for rtw8723x devices wifi: rtw88: Debug output for rtw8723x EFUSE wifi: rtw88: Add definitions for 8703b chip wifi: rtw88: Add rtw8703b.h wifi: rtw88: Add rtw8703b.c wifi: rtw88: Add rtw8703b_tables.h wifi: rtw88: Add rtw8703b_tables.c wifi: rtw88: Reset 8703b firmware before download wifi: rtw88: SDIO device driver for RTL8723CS drivers/net/wireless/realtek/rtw88/Kconfig | 22 + drivers/net/wireless/realtek/rtw88/Makefile | 9 + drivers/net/wireless/realtek/rtw88/mac.c | 6 + drivers/net/wireless/realtek/rtw88/main.h | 3 + drivers/net/wireless/realtek/rtw88/rtw8703b.c | 2106 +++++++++++++++++ drivers/net/wireless/realtek/rtw88/rtw8703b.h | 62 + .../wireless/realtek/rtw88/rtw8703b_tables.c | 901 +++++++ .../wireless/realtek/rtw88/rtw8703b_tables.h | 14 + .../net/wireless/realtek/rtw88/rtw8723cs.c | 34 + drivers/net/wireless/realtek/rtw88/rtw8723d.c | 673 +----- drivers/net/wireless/realtek/rtw88/rtw8723d.h | 269 +-- drivers/net/wireless/realtek/rtw88/rtw8723x.c | 720 ++++++ drivers/net/wireless/realtek/rtw88/rtw8723x.h | 517 ++++ include/linux/mmc/sdio_ids.h | 1 + 14 files changed, 4437 insertions(+), 900 deletions(-) create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8703b.c create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8703b.h create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8703b_tables.c create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8703b_tables.h create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723cs.c create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723x.c create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723x.h -- 2.43.0