Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH rtw-next 0/5] wifi: rtw88: pci: Support an older design, like RTL8821AE/RTL8812AE
@ 2026-10-23 22:57 Bitterblue Smith
  2026-10-23 22:59 ` [PATCH rtw-next 1/5] wifi: rtw88: Pass RX buffer to rtw_rx_query_rx_desc() Bitterblue Smith
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Bitterblue Smith @ 2026-10-23 22:57 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org; +Cc: Ping-Ke Shih

This series extends rtw88_pci to support an older design, like
RTL8821AE, RTL8812AE, RTL8723BE, etc.

After this, another ~20 small patches can enable support for RTL8821AE
and RTL8812AE. Then rtl8821ae can be deleted from rtlwifi.

Why delete rtl8821ae?

 * RTL8821AE loses the connection on 2.4 GHz several times a day when
   using Bluetooth headphones. Most of the time it's not noticeable
   because it reconnects immediately, but sometimes (once so far) it
   stays disconnected because it can no longer find any networks. No
   clue what causes this.

 * The mouse cursor can stutter when running iperf3.

 * RTL8812AE has a strange problem with TX: iperf3 TX test shows
   drops to 0 Mbps every few seconds, which can last several seconds.
   This happens often.

 * Most of the code for these chips is already in rtw88.

Theoretically rtlwifi supports WOWLAN, but it doesn't work for me with
RTL8821AE or RTL8812AE. rtw88 doesn't support WOWLAN with these chips.

rtw88 is not without problems, but in my experience it's more reliable
with these two chips. In the 6-8 months I used this code, I observed
these problems with rtw88:

 * The top speed is a bit lower: ~220 Mbps instead of ~300 Mbps. In the
   case of TX, the difference is due to the EDCA parameters. rtw88 uses
   the ones from mac80211 (rtw_conf_tx()), whereas rtlwifi uses its own
   "turbo" values when there are not too many non-BE packets
   (rtl8821ae_dm_check_edca_turbo()). Not sure why the RX speed is
   lower.

 * RTL8821AE RX speed gets limited to 70-100 Mbps sometimes. If I watch
   a Youtube video with Bluetooth headphones for 10 minutes and then
   switch to another wifi adapter while the video is playing, leaving
   the RTL8821AE's wifi side idle, usually within 20 minutes it will
   start to raise IMR_RDU when it reaches the end of the RX ring and
   goes back to the beginning.

   It uses RX descriptor number 511, then number 0, then it doesn't
   want to use number 1 for "a while". It raises IMR_RDU once or twice,
   and only then it moves on to number 1, 2...

   Usually when it raises IMR_RDU there are 510 or 511 RX descriptors
   available (out of 512), so it has no excuse.

   Once it has raised IMR_RDU the RX speed doesn't exceed 70-100 Mbps
   anymore.

   Powering off and on again, which happens a lot when the wifi
   interface is idle, doesn't help.

   The only thing that seems to help is reloading the driver, but even
   that may not always work.

   Switching to another wifi adapter while playing some video is the
   most reliable way to trigger the problem, but it can also happen
   randomly, it just takes many hours.

Bitterblue Smith (5):
  wifi: rtw88: Pass RX buffer to rtw_rx_query_rx_desc()
  wifi: rtw88: Pass TX descriptor to rtw_tx_fill_tx_desc()
  wifi: rtw88: pci: Introduce struct rtw_pci_gen
  wifi: rtw88: pci: Add functions to support older chips
  wifi: rtw88: pci: Handle more RX interrupts for RTL8821AE

 drivers/net/wireless/realtek/rtw88/Makefile   |   2 +-
 drivers/net/wireless/realtek/rtw88/fw.c       |   4 +-
 drivers/net/wireless/realtek/rtw88/main.h     |   3 +-
 drivers/net/wireless/realtek/rtw88/pci.c      | 167 +++---
 drivers/net/wireless/realtek/rtw88/pci.h      |  44 +-
 drivers/net/wireless/realtek/rtw88/pci_old.c  | 529 ++++++++++++++++++
 drivers/net/wireless/realtek/rtw88/pci_old.h  |  39 ++
 drivers/net/wireless/realtek/rtw88/reg.h      |   3 +
 drivers/net/wireless/realtek/rtw88/rtw8723b.c |   2 +-
 .../net/wireless/realtek/rtw88/rtw8723de.c    |   7 +-
 drivers/net/wireless/realtek/rtw88/rtw8723x.c |   2 +-
 drivers/net/wireless/realtek/rtw88/rtw8723x.h |   4 +-
 drivers/net/wireless/realtek/rtw88/rtw8812a.c |   2 +-
 drivers/net/wireless/realtek/rtw88/rtw8814a.c |   2 +-
 .../net/wireless/realtek/rtw88/rtw8814ae.c    |   7 +-
 drivers/net/wireless/realtek/rtw88/rtw8821a.c |   2 +-
 drivers/net/wireless/realtek/rtw88/rtw8821c.c |   2 +-
 .../net/wireless/realtek/rtw88/rtw8821ce.c    |   9 +-
 drivers/net/wireless/realtek/rtw88/rtw8822b.c |   2 +-
 .../net/wireless/realtek/rtw88/rtw8822be.c    |   7 +-
 drivers/net/wireless/realtek/rtw88/rtw8822c.c |   2 +-
 .../net/wireless/realtek/rtw88/rtw8822ce.c    |   9 +-
 drivers/net/wireless/realtek/rtw88/rx.c       |   6 +-
 drivers/net/wireless/realtek/rtw88/rx.h       |   6 +-
 drivers/net/wireless/realtek/rtw88/sdio.c     |   8 +-
 drivers/net/wireless/realtek/rtw88/tx.c       |   4 +-
 drivers/net/wireless/realtek/rtw88/tx.h       |  15 +-
 drivers/net/wireless/realtek/rtw88/usb.c      |  21 +-
 28 files changed, 802 insertions(+), 108 deletions(-)
 create mode 100644 drivers/net/wireless/realtek/rtw88/pci_old.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/pci_old.h

-- 
2.55.0


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

end of thread, other threads:[~2026-10-24  8:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-23 22:57 [PATCH rtw-next 0/5] wifi: rtw88: pci: Support an older design, like RTL8821AE/RTL8812AE Bitterblue Smith
2026-10-23 22:59 ` [PATCH rtw-next 1/5] wifi: rtw88: Pass RX buffer to rtw_rx_query_rx_desc() Bitterblue Smith
2026-10-23 23:00 ` [PATCH rtw-next 2/5] wifi: rtw88: Pass TX descriptor to rtw_tx_fill_tx_desc() Bitterblue Smith
2026-10-23 23:01 ` [PATCH rtw-next 3/5] wifi: rtw88: pci: Introduce struct rtw_pci_gen Bitterblue Smith
2026-10-24  8:41   ` Luka Gejak
2026-10-23 23:02 ` [PATCH rtw-next 4/5] wifi: rtw88: pci: Add functions to support older chips Bitterblue Smith
2026-10-24  8:36   ` Luka Gejak
2026-10-23 23:05 ` [PATCH rtw-next 5/5] wifi: rtw88: pci: Handle more RX interrupts for RTL8821AE Bitterblue Smith

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox