[PULL] [Focal/Unstable] Add support for Realtek 8723DE wireless adapter

Kai-Heng Feng kai.heng.feng at canonical.com
Tue Dec 10 07:40:14 UTC 2019


[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



More information about the kernel-team mailing list