[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