[PULL] [Focal/Unstable] Add support for Realtek 8723DE wireless adapter
Kai-Heng Feng
kai.heng.feng at canonical.com
Tue Dec 10 07:41:56 UTC 2019
> On Dec 10, 2019, at 15:40, Kai-Heng Feng <kai.heng.feng at canonical.com> wrote:
Oops, forgot to add BugLink:
BugLink: https://bugs.launchpad.net/bugs/1780590
>
> [Impact]
> There's no in-kernel support for Realtek 8723DE, so users need to use
> out-of-tree DKMS which is not from Ubuntu archive. This has security
> implication and should be avoided. Also this provides pretty bad user
> experience.
>
> [Fix]
> Add support to Realtek 8723DE.
> All commits are cherry-picked from Realtek maintained repo:
> https://github.com/rtlwifi-linux/rtw88_8723de
> Realtek is committed to update this repo until every bits are
> upstreamed.
>
> [Test]
> With the patch series applied, 8723DE can scan and connect to APs
> succesfully. Also did some S3 smoke test, it continues to work.
>
> [Regression Potential]
> Low. The device in question was never supported, and if there's any
> regression, we can count on Realtek Wireless team, thy are now pretty
> responsive on upstream mailing list.
>
> The following changes since commit f77b7acc39ef131f91db7fb6b17185c1ae03f118:
>
> UBUNTU: Ubuntu-5.4.0-8.10 (2019-12-06 12:56:54 -0600)
>
> are available in the Git repository at:
>
> https://git.launchpad.net/~kaihengfeng/linux rtw88
>
> for you to fetch changes up to 03a2a020af1f2eff0f745c464a50de88c4034aae:
>
> UBUNTU: [Config] CONFIG_RTW88_8723DE=y (2019-12-09 14:32:40 +0800)
>
> ----------------------------------------------------------------
> Chin-Yen Lee (6):
> UBUNTU: SAUCE: rtw88: check firmware leave lps successfully
> UBUNTU: SAUCE: rtw88: support wowlan feature for 8822c
> UBUNTU: SAUCE: rtw88: wowlan: support pattern match
> UBUNTU: SAUCE: rtw88: wowlan: support PNO for 8822C
> UBUNTU: SAUCE: rtw88: add module parameter to enable PCIE clock request
> UBUNTU: SAUCE: rtw88: add module parameter to enable PCIE ASPM L1
>
> Kai-Heng Feng (2):
> Bluetooth: btusb: Disable runtime suspend on Realtek devices
> UBUNTU: [Config] CONFIG_RTW88_8723DE=y
>
> Ping-Ke Shih (56):
> UBUNTU: SAUCE: rtw88: use struct rtw_fw_hdr to access firmware header
> UBUNTU: SAUCE: rtw88: fix NSS of hw_cap
> UBUNTU: SAUCE: rtw88: fix error handling when setup efuse info
> UBUNTU: SAUCE: rtw88: coex: Set 4 slot mode for A2DP
> UBUNTU: SAUCE: rtw88: fix TX secondary channel offset of 40M if current bw is 20M or 40M
> UBUNTU: SAUCE: rtw88: Use secondary channel offset enumeration to make better read
> UBUNTU: SAUCE: rtw88: keep leave and enter IPS as the first and last in config callback
> UBUNTU: SAUCE: rtw88: fix rate mask for 1SS chip
> UBUNTU: SAUCE: rtw88: refine conversion of rx_evm_dbm from rx_evm
> UBUNTU: SAUCE: rtw88: 8723d: Add firmware
> UBUNTU: SAUCE: rtw88: 8723d: Add basic chip information of 8723D
> UBUNTU: SAUCE: rtw88: 8723de: Add 8723DE to Kconfig and Makefile
> UBUNTU: SAUCE: rtw88: 8723d: check set_gid_table before calling
> UBUNTU: SAUCE: rtw88: 8723d: Add power sequence
> UBUNTU: SAUCE: rtw88: 8723d: Add RF read/write ops
> UBUNTU: SAUCE: rtw88: 8723d: Add mac/bb/rf/agc/power_limit tables
> UBUNTU: SAUCE: rtw88: 8723d: Add ops cfg_ldo25 to control LDO25
> UBUNTU: SAUCE: rtw88: 8723d: Add ops efuse_en to enable/disable efuse access
> UBUNTU: SAUCE: rtw88: 8723d: Add read_efuse ops to recognize efuse info from map
> UBUNTU: SAUCE: rtw88: add legacy firmware download for 8723de
> UBUNTU: SAUCE: rtw88: Don't need send additional information to legacy firmware
> UBUNTU: SAUCE: rtw88: 8723d: Implement mac power-on/-off function
> UBUNTU: SAUCE: rtw88: decompose while(1) loop of power sequence polling command
> UBUNTU: SAUCE: rtw88: 8723d: 11N chips don't support H2C queue
> UBUNTU: SAUCE: rtw88: 8723d: implement ops set_tx_power_index to set tx power
> UBUNTU: SAUCE: rtw88: 8723d: Organize chip TX/RX FIFO
> UBUNTU: SAUCE: rtw88: 8723d: initialize mac/bb/rf basic functions
> UBUNTU: SAUCE: rtw88: 8723d: Add DIG parameter
> UBUNTU: SAUCE: rtw88: 8723d: Add ops query_rx_desc
> UBUNTU: SAUCE: rtw88: 8723d: Add ops set_channel
> UBUNTU: SAUCE: rtw88: handle C2H_CCX_TX_RPT (0x03) to know if packet TX successfully
> UBUNTU: SAUCE: rtw88: 8723d: Add LDPC cap to chip info
> UBUNTU: SAUCE: rtw88: 8723d: 11N chip doesn't have LS field in TX descriptor
> UBUNTU: SAUCE: rtw88: 8723d: Add ops false_alarm_statistics
> UBUNTU: SAUCE: rtw88: 8723d: Set IG register for CCK rate
> UBUNTU: SAUCE: rtw88: 8723d: add interface configurations table
> UBUNTU: SAUCE: rtw88: 8723d: Add LC calibration
> UBUNTU: SAUCE: rtw88: 8723d: add IQ calibration
> UBUNTU: SAUCE: rtw88: 8723d: Add power tracking
> UBUNTU: SAUCE: rtw88: 8723d: Add shutdown callback to disable USB suspend
> UBUNTU: SAUCE: rtw88: 8723d: implement flush queue
> UBUNTU: SAUCE: rtw88: 8723d: set ltecoex register address in chip_info
> UBUNTU: SAUCE: rtw88: 8723d: Add coex support
> UBUNTU: SAUCE: rtw88: sar: add SAR of TX power limit
> UBUNTU: SAUCE: rtw88: sar: Load SAR table from ACPI
> UBUNTU: SAUCE: rtw88: fill zeros to words 0x06 and 0x07 of security cam entry
> UBUNTU: SAUCE: rtw88: Don't set RX_FLAG_DECRYPTED to rx_status if packet has no encryption
> UBUNTU: SAUCE: rtw88: sar: Don't induce to SAR WW if regd WW is specified
> UBUNTU: SAUCE: rtw88: sar: try use WW one if SAR value of specified regd is invalid
> UBUNTU: SAUCE: rtw88: sar: sar.c include sar.h
> UBUNTU: SAUCE: rtw88: sar: generalize WRDS read function to support more tables
> UBUNTU: SAUCE: rtw88: sar: add basic parser of RT tables
> UBUNTU: SAUCE: rtw88: sar: apply RWRD/RWSI/RWGS tables to tx power limit
> UBUNTU: SAUCE: rtw88: sar: add sar_work to poll if RWSI changed
> UBUNTU: SAUCE: rtw88: sar: dump sar information via debugfs
> UBUNTU: SAUCE: rtw88: add ciphers to suppress error message
>
> Tsang-Shian Lin (1):
> UBUNTU: SAUCE: rtw88: add phy_info debugfs to show Tx/Rx physical status
>
> Tzu-En Huang (6):
> UBUNTU: SAUCE: rtw88: report tx rate to mac80211 stack
> UBUNTU: SAUCE: rtw88: add power tracking support
> UBUNTU: SAUCE: rtw88: Enable 802.11ac beamformee support
> UBUNTU: SAUCE: rtw88: config 8822c multicast address in MAC init flow
> UBUNTU: SAUCE: rtw88: add set_bitrate_mask support
> UBUNTU: SAUCE: rtw88: update regulatory settings implementaion
>
> Yan-Hsuan Chuang (16):
> UBUNTU: SAUCE: rtw88: remove redundant flag check helper function
> UBUNTU: SAUCE: rtw88: not to enter or leave PS under IRQ
> UBUNTU: SAUCE: rtw88: not to control LPS by each vif
> UBUNTU: SAUCE: rtw88: remove unused lps state check helper
> UBUNTU: SAUCE: rtw88: LPS enter/leave should be protected by lock
> UBUNTU: SAUCE: rtw88: leave PS state for dynamic mechanism
> UBUNTU: SAUCE: rtw88: add deep power save support
> UBUNTU: SAUCE: rtw88: not to enter LPS by coex strategy
> UBUNTU: SAUCE: rtw88: select deep PS mode when module is inserted
> UBUNTU: SAUCE: rtw88: add deep PS PG mode for 8822c
> UBUNTU: SAUCE: rtw88: add RTS support
> UBUNTU: SAUCE: rtw88: add driver tx queue support
> UBUNTU: SAUCE: rtw88: take over rate control from mac80211
> UBUNTU: SAUCE: rtw88: add TX-AMSDU support
> UBUNTU: SAUCE: rtw88: flush hardware tx queues
> UBUNTU: SAUCE: rtw88: default enable LPS + LCLK
>
> debian.master/config/config.common.ubuntu | 1 +
> drivers/bluetooth/btusb.c | 4 +
> drivers/net/wireless/realtek/rtw88/Kconfig | 10 +
> drivers/net/wireless/realtek/rtw88/Makefile | 4 +
> drivers/net/wireless/realtek/rtw88/bf.c | 408 ++++
> drivers/net/wireless/realtek/rtw88/bf.h | 92 +
> drivers/net/wireless/realtek/rtw88/coex.c | 38 +-
> drivers/net/wireless/realtek/rtw88/debug.c | 205 +-
> drivers/net/wireless/realtek/rtw88/debug.h | 3 +
> drivers/net/wireless/realtek/rtw88/efuse.c | 4 +
> drivers/net/wireless/realtek/rtw88/fw.c | 610 ++++-
> drivers/net/wireless/realtek/rtw88/fw.h | 286 ++-
> drivers/net/wireless/realtek/rtw88/hci.h | 14 +
> drivers/net/wireless/realtek/rtw88/mac.c | 459 +++-
> drivers/net/wireless/realtek/rtw88/mac.h | 13 +-
> drivers/net/wireless/realtek/rtw88/mac80211.c | 271 ++-
> drivers/net/wireless/realtek/rtw88/main.c | 379 ++-
> drivers/net/wireless/realtek/rtw88/main.h | 360 ++-
> drivers/net/wireless/realtek/rtw88/pci.c | 278 ++-
> drivers/net/wireless/realtek/rtw88/pci.h | 21 +-
> drivers/net/wireless/realtek/rtw88/phy.c | 305 ++-
> drivers/net/wireless/realtek/rtw88/phy.h | 23 +
> drivers/net/wireless/realtek/rtw88/ps.c | 178 +-
> drivers/net/wireless/realtek/rtw88/ps.h | 13 +-
> .../realtek/rtw88/reference/fw/rtw8723d_fw | Bin 0 -> 28884 bytes
> drivers/net/wireless/realtek/rtw88/reg.h | 141 +-
> drivers/net/wireless/realtek/rtw88/regd.c | 61 +-
> drivers/net/wireless/realtek/rtw88/rtw8723d.c | 2560 ++++++++++++++++++++
> drivers/net/wireless/realtek/rtw88/rtw8723d.h | 204 ++
> .../net/wireless/realtek/rtw88/rtw8723d_table.c | 1196 +++++++++
> .../net/wireless/realtek/rtw88/rtw8723d_table.h | 15 +
> drivers/net/wireless/realtek/rtw88/rtw8822b.c | 417 +++-
> drivers/net/wireless/realtek/rtw88/rtw8822b.h | 12 +
> drivers/net/wireless/realtek/rtw88/rtw8822c.c | 354 ++-
> drivers/net/wireless/realtek/rtw88/rtw8822c.h | 12 +
> drivers/net/wireless/realtek/rtw88/rx.c | 93 +-
> drivers/net/wireless/realtek/rtw88/rx.h | 11 +
> drivers/net/wireless/realtek/rtw88/sar.c | 762 ++++++
> drivers/net/wireless/realtek/rtw88/sar.h | 14 +
> drivers/net/wireless/realtek/rtw88/sec.c | 27 +-
> drivers/net/wireless/realtek/rtw88/sec.h | 1 +
> drivers/net/wireless/realtek/rtw88/tx.c | 178 +-
> drivers/net/wireless/realtek/rtw88/tx.h | 14 +-
> drivers/net/wireless/realtek/rtw88/util.c | 45 +-
> drivers/net/wireless/realtek/rtw88/util.h | 17 +
> drivers/net/wireless/realtek/rtw88/wow.c | 758 ++++++
> drivers/net/wireless/realtek/rtw88/wow.h | 62 +
> 47 files changed, 10553 insertions(+), 380 deletions(-)
> create mode 100644 drivers/net/wireless/realtek/rtw88/bf.c
> create mode 100644 drivers/net/wireless/realtek/rtw88/bf.h
> create mode 100644 drivers/net/wireless/realtek/rtw88/reference/fw/rtw8723d_fw
> create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723d.c
> create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723d.h
> create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723d_table.c
> create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723d_table.h
> create mode 100644 drivers/net/wireless/realtek/rtw88/sar.c
> create mode 100644 drivers/net/wireless/realtek/rtw88/sar.h
> create mode 100644 drivers/net/wireless/realtek/rtw88/wow.c
> create mode 100644 drivers/net/wireless/realtek/rtw88/wow.h
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
More information about the kernel-team
mailing list