Skip to content

Commit e303748

Browse files
Yan-Hsuan ChuangKalle Valo
authored andcommitted
rtw88: new Realtek 802.11ac driver
This is a new mac80211 driver for Realtek 802.11ac wireless network chips. rtw88 now supports RTL8822BE/RTL8822CE now, with basic station mode functionalities. The firmware for both can be found at linux-firmware. https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git For RTL8822BE: rtw88/rtw8822b_fw.bin For RTL8822CE: rtw88/rtw8822c_fw.bin And for now, only PCI buses (RTL8xxxE) are supported. We will add support for USB and SDIO in the future. The bus interface abstraction can be seen in this driver such as hci.h. Most of the hardware setting are the same except for some TRX path or probing setup should be separated. Supported: * Basic STA/AP/ADHOC mode, and TDLS (STA is well tested) Missing feature: * WOW/PNO * USB & SDIO bus (such as RTL8xxxU/RTL8xxxS) * BT coexistence (8822B/8822C are combo ICs) * Multiple interfaces (for now single STA is better supported) * Dynamic hardware calibrations (to improve/stabilize performance) Potential problems: * static calibration spends too much time, and it is painful for driver to leave IDLE state. And slows down associate process. But reload function are under development, will be added soon! * TRX statictics misleading, as we are not reporting status correctly, or say, not reporting for "every" packet. The next patch set should have BT coexistence code since RTL8822B/C are combo ICs, and the driver for BT can be found after Linux Kernel v4.20. So it is better to add it first to make WiFi + BT work concurrently. Although now rtw88 is simple but we are developing more features for it. Even we want to add support for more chips such as RTL8821C/RTL8814B. Finally, rtw88 has many authors, listed alphabetically: Ping-Ke Shih <pkshih@realtek.com> Tzu-En Huang <tehuang@realtek.com> Yan-Hsuan Chuang <yhchuang@realtek.com> Reviewed-by: Stanislaw Gruszka <sgruszka@redhat.com> Reviewed-by: Brian Norris <briannorris@chromium.org> Tested-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
1 parent c745f72 commit e303748

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+47514
-0
lines changed

MAINTAINERS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13396,6 +13396,12 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.g
1339613396
S: Maintained
1339713397
F: drivers/net/wireless/realtek/rtlwifi/
1339813398

13399+
REALTEK WIRELESS DRIVER (rtw88)
13400+
M: Yan-Hsuan Chuang <yhchuang@realtek.com>
13401+
L: linux-wireless@vger.kernel.org
13402+
S: Maintained
13403+
F: drivers/net/wireless/realtek/rtw88/
13404+
1339913405
RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
1340013406
M: Jes Sorensen <Jes.Sorensen@gmail.com>
1340113407
L: linux-wireless@vger.kernel.org

drivers/net/wireless/realtek/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ if WLAN_VENDOR_REALTEK
1414
source "drivers/net/wireless/realtek/rtl818x/Kconfig"
1515
source "drivers/net/wireless/realtek/rtlwifi/Kconfig"
1616
source "drivers/net/wireless/realtek/rtl8xxxu/Kconfig"
17+
source "drivers/net/wireless/realtek/rtw88/Kconfig"
1718

1819
endif # WLAN_VENDOR_REALTEK

drivers/net/wireless/realtek/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ obj-$(CONFIG_RTL8180) += rtl818x/
66
obj-$(CONFIG_RTL8187) += rtl818x/
77
obj-$(CONFIG_RTLWIFI) += rtlwifi/
88
obj-$(CONFIG_RTL8XXXU) += rtl8xxxu/
9+
obj-$(CONFIG_RTW88) += rtw88/
910

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
menuconfig RTW88
2+
tristate "Realtek 802.11ac wireless chips support"
3+
depends on MAC80211
4+
help
5+
This module adds support for mac80211-based wireless drivers that
6+
enables Realtek IEEE 802.11ac wireless chipsets.
7+
8+
If you choose to build a module, it'll be called rtw88.
9+
10+
if RTW88
11+
12+
config RTW88_CORE
13+
tristate
14+
15+
config RTW88_PCI
16+
tristate
17+
18+
config RTW88_8822BE
19+
bool "Realtek 8822BE PCI wireless network adapter"
20+
depends on PCI
21+
select RTW88_CORE
22+
select RTW88_PCI
23+
help
24+
Select this option will enable support for 8822BE chipset
25+
26+
802.11ac PCIe wireless network adapter
27+
28+
config RTW88_8822CE
29+
bool "Realtek 8822CE PCI wireless network adapter"
30+
depends on PCI
31+
select RTW88_CORE
32+
select RTW88_PCI
33+
help
34+
Select this option will enable support for 8822CE chipset
35+
36+
802.11ac PCIe wireless network adapter
37+
38+
config RTW88_DEBUG
39+
bool "Realtek rtw88 debug support"
40+
depends on RTW88_CORE
41+
help
42+
Enable debug support
43+
44+
If unsure, say Y to simplify debug problems
45+
46+
config RTW88_DEBUGFS
47+
bool "Realtek rtw88 debugfs support"
48+
depends on RTW88_CORE
49+
help
50+
Enable debug support
51+
52+
If unsure, say Y to simplify debug problems
53+
54+
endif
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
obj-$(CONFIG_RTW88_CORE) += rtw88.o
2+
rtw88-y += main.o \
3+
mac80211.o \
4+
util.o \
5+
debug.o \
6+
tx.o \
7+
rx.o \
8+
mac.o \
9+
phy.o \
10+
efuse.o \
11+
fw.o \
12+
ps.o \
13+
sec.o \
14+
regd.o
15+
16+
rtw88-$(CONFIG_RTW88_8822BE) += rtw8822b.o rtw8822b_table.o
17+
rtw88-$(CONFIG_RTW88_8822CE) += rtw8822c.o rtw8822c_table.o
18+
19+
obj-$(CONFIG_RTW88_PCI) += rtwpci.o
20+
rtwpci-objs := pci.o

0 commit comments

Comments
 (0)