netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH v1 00/19] rtw88: Add SDIO support
@ 2022-12-27 23:30 Martin Blumenstingl
  2022-12-27 23:30 ` [RFC PATCH v1 01/19] rtw88: mac: Use existing interface mask macros in rtw_pwr_seq_parser() Martin Blumenstingl
                   ` (20 more replies)
  0 siblings, 21 replies; 47+ messages in thread
From: Martin Blumenstingl @ 2022-12-27 23:30 UTC (permalink / raw)
  To: linux-wireless
  Cc: Yan-Hsuan Chuang, Kalle Valo, Ulf Hansson, linux-kernel, netdev,
	linux-mmc, Chris Morgan, Nitin Gupta, Neo Jou, Pkshih,
	Jernej Skrabec, Martin Blumenstingl

Recently the rtw88 driver has gained locking support for the "slow" bus
types (USB, SDIO) as part of USB support. Thanks to everyone who helped
make this happen!

Based on the USB work (especially the locking part and various
bugfixes) this series adds support for SDIO based cards. It's the
result of a collaboration between Jernej and myself. Neither of us has
access to the rtw88 datasheets. All of our work is based on studying
the RTL8822BS and RTL8822CS vendor drivers and trial and error.

Jernej and myself have tested this with RTL8822BS and RTL8822CS cards.
Other users have confirmed that RTL8821CS support is working as well.
RTL8723DS may also work (we tried our best to handle rtw_chip_wcpu_11n
where needed) but has not been tested at this point.

Jernej's results with a RTL8822BS:
- Main functionality works
- Had a case where no traffic got across the link until he issued a
  scan

My results with a RTL8822CS:
- 2.4GHz and 5GHz bands are both working
- TX throughput on a 5GHz network is between 50 Mbit/s and 90 Mbit/s
- RX throughput on a 5GHz network is at 19 Mbit/s
- Sometimes there are frequent reconnects (once every 1-5 minutes)
  after the link has been up for a long time (multiple hours). Today
  I was unable to reproduce this though (I only had reconnect in 8
  hours).

Why is this an RFC?
- It needs a through review especially by the rtw88 maintainers
- It's not clear to me how the "mmc: sdio" patch will be merged (will
  Ulf take this or can we merge it thorugh the rtw88/linux wireless
  driver tree?)
- Any comments / debugging hints on the reconnect / no traffic issues
  (see above) are welcome
- My understanding is that there's a discussion about the rtw88 Kconfig
  symbols. We're adding four new ones within this series. It's not
  clear to me what the conclusion is on this topic though.
- As with most patches: testing is very welcome. If things are working
  fine then a Tested-by is appreciated (with some details about the
  card, throughput, ...). If something doesn't work for you: please
  still report back so we can investigate that problem!



Jernej Skrabec (2):
  rtw88: ps: Increase LEAVE_LPS_TRY_CNT for SDIO based chipsets
  rtw88: Add support for the SDIO based RTL8822BS chipset

Martin Blumenstingl (17):
  rtw88: mac: Use existing interface mask macros in rtw_pwr_seq_parser()
  rtw88: pci: Change type of rtw_hw_queue_mapping() and ac_to_hwq to
    enum
  rtw88: pci: Change queue datatype from u8 to enum rtw_tx_queue_type
  rtw88: Move enum rtw_tx_queue_type mapping code to tx.{c,h}
  mmc: sdio: add Realtek SDIO vendor ID and various wifi device IDs
  rtw88: rtw8821c: Add support for parsing the RTL8821CS (SDIO) efuse
  rtw88: rtw8822b: Add support for parsing the RTL8822BS (SDIO) efuse
  rtw88: rtw8822c: Add support for parsing the RTL8822CS (SDIO) efuse
  rtw88: hci: Add an optional power_switch() callback to rtw_hci_ops
  rtw88: mac: Add support for the SDIO HCI in rtw_pwr_seq_parser()
  rtw88: mac: Add support for the SDIO HCI in the TX/page table setup
  rtw88: sdio: Add HCI implementation for SDIO based chipsets
  rtw88: mac: Add support for SDIO specifics in the power on sequence
  rtw88: main: Add the rpwm_addr and cpwm_addr for SDIO based chipsets
  rtw88: main: Reserve 8 bytes of extra TX headroom for SDIO based cards
  rtw88: Add support for the SDIO based RTL8822CS chipset
  rtw88: Add support for the SDIO based RTL8821CS chipset

 drivers/net/wireless/realtek/rtw88/Kconfig    |   36 +
 drivers/net/wireless/realtek/rtw88/Makefile   |   12 +
 drivers/net/wireless/realtek/rtw88/debug.h    |    1 +
 drivers/net/wireless/realtek/rtw88/hci.h      |    8 +
 drivers/net/wireless/realtek/rtw88/mac.c      |   62 +-
 drivers/net/wireless/realtek/rtw88/mac.h      |    1 -
 drivers/net/wireless/realtek/rtw88/main.c     |    9 +-
 drivers/net/wireless/realtek/rtw88/pci.c      |   50 +-
 drivers/net/wireless/realtek/rtw88/ps.h       |    2 +-
 drivers/net/wireless/realtek/rtw88/reg.h      |   10 +
 drivers/net/wireless/realtek/rtw88/rtw8821c.c |    9 +
 drivers/net/wireless/realtek/rtw88/rtw8821c.h |    6 +
 .../net/wireless/realtek/rtw88/rtw8821cs.c    |   34 +
 drivers/net/wireless/realtek/rtw88/rtw8822b.c |   10 +
 drivers/net/wireless/realtek/rtw88/rtw8822b.h |    6 +
 .../net/wireless/realtek/rtw88/rtw8822bs.c    |   34 +
 drivers/net/wireless/realtek/rtw88/rtw8822c.c |    9 +
 drivers/net/wireless/realtek/rtw88/rtw8822c.h |    6 +
 .../net/wireless/realtek/rtw88/rtw8822cs.c    |   34 +
 drivers/net/wireless/realtek/rtw88/sdio.c     | 1242 +++++++++++++++++
 drivers/net/wireless/realtek/rtw88/sdio.h     |  175 +++
 drivers/net/wireless/realtek/rtw88/tx.c       |   41 +
 drivers/net/wireless/realtek/rtw88/tx.h       |    3 +
 include/linux/mmc/sdio_ids.h                  |    9 +
 24 files changed, 1763 insertions(+), 46 deletions(-)
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821cs.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822bs.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822cs.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/sdio.h

-- 
2.39.0


^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2023-01-17 18:34 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-27 23:30 [RFC PATCH v1 00/19] rtw88: Add SDIO support Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 01/19] rtw88: mac: Use existing interface mask macros in rtw_pwr_seq_parser() Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 02/19] rtw88: pci: Change type of rtw_hw_queue_mapping() and ac_to_hwq to enum Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 03/19] rtw88: pci: Change queue datatype from u8 to enum rtw_tx_queue_type Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 04/19] rtw88: Move enum rtw_tx_queue_type mapping code to tx.{c,h} Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 05/19] mmc: sdio: add Realtek SDIO vendor ID and various wifi device IDs Martin Blumenstingl
2023-01-03 11:41   ` Ulf Hansson
2022-12-27 23:30 ` [RFC PATCH v1 06/19] rtw88: rtw8821c: Add support for parsing the RTL8821CS (SDIO) efuse Martin Blumenstingl
2022-12-28  6:21   ` Ping-Ke Shih
2022-12-27 23:30 ` [RFC PATCH v1 07/19] rtw88: rtw8822b: Add support for parsing the RTL8822BS " Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 08/19] rtw88: rtw8822c: Add support for parsing the RTL8822CS " Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 09/19] rtw88: hci: Add an optional power_switch() callback to rtw_hci_ops Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 10/19] rtw88: mac: Add support for the SDIO HCI in rtw_pwr_seq_parser() Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 11/19] rtw88: mac: Add support for the SDIO HCI in the TX/page table setup Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 12/19] rtw88: sdio: Add HCI implementation for SDIO based chipsets Martin Blumenstingl
2022-12-28  9:39   ` Ping-Ke Shih
2022-12-28 11:59     ` Martin Blumenstingl
2022-12-29  0:50       ` Ping-Ke Shih
2023-01-03 11:42   ` Ulf Hansson
2022-12-27 23:30 ` [RFC PATCH v1 13/19] rtw88: mac: Add support for SDIO specifics in the power on sequence Martin Blumenstingl
2022-12-29  1:14   ` Ping-Ke Shih
2022-12-29 10:49     ` Martin Blumenstingl
2022-12-29 11:24       ` Ping-Ke Shih
2022-12-27 23:30 ` [RFC PATCH v1 14/19] rtw88: main: Add the rpwm_addr and cpwm_addr for SDIO based chipsets Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 15/19] rtw88: main: Reserve 8 bytes of extra TX headroom for SDIO based cards Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 16/19] rtw88: ps: Increase LEAVE_LPS_TRY_CNT for SDIO based chipsets Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 17/19] rtw88: Add support for the SDIO based RTL8822BS chipset Martin Blumenstingl
2022-12-27 23:30 ` [RFC PATCH v1 18/19] rtw88: Add support for the SDIO based RTL8822CS chipset Martin Blumenstingl
2022-12-29  1:40   ` Ping-Ke Shih
2022-12-27 23:30 ` [RFC PATCH v1 19/19] rtw88: Add support for the SDIO based RTL8821CS chipset Martin Blumenstingl
2023-01-03 23:01   ` Chris Morgan
2023-01-04 15:40     ` Martin Blumenstingl
2023-01-04 17:05       ` Chris Morgan
2023-01-04 17:23         ` Martin Blumenstingl
2023-01-04 22:45           ` Chris Morgan
2023-01-04 19:59     ` Bitterblue Smith
2023-01-04 20:06       ` Felix Schwarz
2023-01-04 20:14       ` Larry Finger
2023-01-07 14:53         ` Bitterblue Smith
2023-01-05  8:01       ` Sascha Hauer
2023-01-05 15:38         ` Bitterblue Smith
2022-12-29  4:19 ` [RFC PATCH v1 00/19] rtw88: Add SDIO support Ping-Ke Shih
2022-12-29 23:18   ` Martin Blumenstingl
2022-12-30  0:06     ` Ping-Ke Shih
2023-01-16 16:01 ` Kalle Valo
2023-01-17 17:21   ` Jakub Kicinski
2023-01-17 18:01     ` Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).