rtw88: new Realtek 802.11ac driver
authorYan-Hsuan Chuang <yhchuang@realtek.com>
Fri, 26 Apr 2019 12:17:37 +0000 (15:17 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 30 Apr 2019 16:43:37 +0000 (19:43 +0300)
commite3037485c68ec1a299ff41160d8fedbd4abc29b9
treefaa639e769935576679cf6d3495d133f697c2076
parentc745f72266603b13de57d24b3b559fbeea275bf2
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>
42 files changed:
MAINTAINERS
drivers/net/wireless/realtek/Kconfig
drivers/net/wireless/realtek/Makefile
drivers/net/wireless/realtek/rtw88/Kconfig [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/Makefile [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/debug.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/debug.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/efuse.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/efuse.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/fw.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/fw.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/hci.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/mac.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/mac.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/mac80211.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/main.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/main.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/pci.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/pci.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/phy.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/phy.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/ps.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/ps.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/reg.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/regd.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/regd.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822b.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822b.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822b_table.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822b_table.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822c.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822c.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822c_table.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rtw8822c_table.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rx.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/rx.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/sec.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/sec.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/tx.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/tx.h [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/util.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw88/util.h [new file with mode: 0644]