From 0e3e8284f8e1bf2fc0f7bf247194efe5cfc568c1 Mon Sep 17 00:00:00 2001 From: Bitterblue Smith Date: Wed, 30 Oct 2024 20:31:28 +0200 Subject: [PATCH] wifi: rtw88: Enable the new RTL8821AU/RTL8812AU drivers These are older Wifi 5 chips. RTL8821AU is 1x1, with or without Bluetooth. RTL8812AU is 2x2, without Bluetooth. Beamforming is not implemented. It looks like these chips need a different implementation than what is in bf.c. Speed tests with RTL8821AU: 137 Mbps download, 144 Mbps upload. Speed tests with RTL8812AU: 344 Mbps download, 387 Mbps upload. Station mode and AP mode were tested. Bluetooth coexistence works. I used my Bluetooth headphones for several days, listening to music and watching videos. There is only a problem with the wifi speeds with one router: With ISP's HG6544C router: Official driver: 3/5 Mbps. rtw88: a bit more, but not steady at all. Not enough to watch a 1080p Youtube video. With my D-Link Eagle R32 router running Openwrt, on the same channel: Official driver: 6/10 Mbps. rtw88: download starts around 30, climbs to 50 / upload is 10 Mbps. I can watch a 1080p Youtube video. The music doesn't cut out during any speed tests. I also tested transferring files to and from my phone. I don't have other types of Bluetooth devices to test. Signed-off-by: Bitterblue Smith Signed-off-by: Ping-Ke Shih Link: https://patch.msgid.link/0b8e8093-8103-4999-86bf-0055ec52ea64@gmail.com --- Kconfig.local | 15 ++++++++ drivers/net/wireless/realtek/rtw88/Kconfig | 40 ++++++++++++++++++++- drivers/net/wireless/realtek/rtw88/Makefile | 15 ++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) --- a/Kconfig.local +++ b/Kconfig.local @@ -1144,6 +1144,15 @@ config BACKPORTED_RTW88_8723D config BACKPORTED_RTW88_8821C tristate default RTW88_8821C +config BACKPORTED_RTW88_88XXA + tristate + default RTW88_88XXA +config BACKPORTED_RTW88_8821A + tristate + default RTW88_8821A +config BACKPORTED_RTW88_8812A + tristate + default RTW88_8812A config BACKPORTED_RTW88_8822BE tristate default RTW88_8822BE @@ -1183,6 +1192,12 @@ config BACKPORTED_RTW88_8821CS config BACKPORTED_RTW88_8821CU tristate default RTW88_8821CU +config BACKPORTED_RTW88_8821AU + tristate + default RTW88_8821AU +config BACKPORTED_RTW88_8812AU + tristate + default RTW88_8812AU config BACKPORTED_RTW88_DEBUG tristate default RTW88_DEBUG --- a/drivers/net/wireless/realtek/rtw88/Kconfig +++ b/drivers/net/wireless/realtek/rtw88/Kconfig @@ -54,6 +54,20 @@ config RTW88_8821C tristate depends on m +config RTW88_88XXA + tristate + depends on m + +config RTW88_8821A + tristate + depends on m + select RTW88_88XXA + +config RTW88_8812A + tristate + depends on m + select RTW88_88XXA + config RTW88_8822BE tristate "Realtek 8822BE PCI wireless network adapter" depends on m @@ -213,6 +227,30 @@ config RTW88_8821CU 802.11ac USB wireless network adapter +config RTW88_8821AU + tristate "Realtek 8821AU/8811AU USB wireless network adapter" + depends on m + depends on USB + select RTW88_CORE + select RTW88_USB + select RTW88_8821A + help + Select this option will enable support for 8821AU and 8811AU chipset + + 802.11ac USB wireless network adapter + +config RTW88_8812AU + tristate "Realtek 8812AU USB wireless network adapter" + depends on m + depends on USB + select RTW88_CORE + select RTW88_USB + select RTW88_8812A + help + Select this option will enable support for 8812AU chipset + + 802.11ac USB wireless network adapter + config RTW88_DEBUG bool "Realtek rtw88 debug support" depends on RTW88_CORE --- a/drivers/net/wireless/realtek/rtw88/Makefile +++ b/drivers/net/wireless/realtek/rtw88/Makefile @@ -77,6 +77,21 @@ rtw88_8821cs-objs := rtw8821cs.o obj-$(CPTCFG_RTW88_8821CU) += rtw88_8821cu.o rtw88_8821cu-objs := rtw8821cu.o +obj-$(CPTCFG_RTW88_88XXA) += rtw88_88xxa.o +rtw88_88xxa-objs := rtw88xxa.o + +obj-$(CPTCFG_RTW88_8821A) += rtw88_8821a.o +rtw88_8821a-objs := rtw8821a.o rtw8821a_table.o + +obj-$(CPTCFG_RTW88_8812A) += rtw88_8812a.o +rtw88_8812a-objs := rtw8812a.o rtw8812a_table.o + +obj-$(CPTCFG_RTW88_8821AU) += rtw88_8821au.o +rtw88_8821au-objs := rtw8821au.o + +obj-$(CPTCFG_RTW88_8812AU) += rtw88_8812au.o +rtw88_8812au-objs := rtw8812au.o + obj-$(CPTCFG_RTW88_PCI) += rtw88_pci.o rtw88_pci-objs := pci.o