[SRU] [OEM-OSP1-B] [Pull] Enable Realtek Wireless Lan 8723DE

Kai-Heng Feng kai.heng.feng at canonical.com
Mon Nov 4 18:56:39 UTC 2019


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 will rebase the driver to 5.4 to target Focal.

[Test]
With the patch series applied, 8723DE can scan and connect to APs
succesfully. Also did some S3 smoke test, it continues to work.

Realtek also tested this driver internally.

[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 1daace260d57df4372f984a16876ac7e4b4aa5d7:

  UBUNTU: Ubuntu-oem-osp1-5.0.0-1026.29 (2019-10-23 13:31:31 +0300)

are available in the Git repository at:

  https://git.launchpad.net/~kaihengfeng/linux lp1780590-oem-osp1

for you to fetch changes up to b04f795629ad06266ba50ee28e9b67c6788c3736:

  UBUNTU: [Config] CONFIG_RTW88_8723DE=y (2019-11-05 02:27:51 +0800)

----------------------------------------------------------------
Chin-Yen Lee (7):
      UBUNTU: SAUCE: rtw88: 8822c: update pwr_seq to v13
      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 (1):
      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 (3):
      UBUNTU: SAUCE: rtw88: 8822c: Enable interrupt migration
      UBUNTU: SAUCE: rtw88: fix wrong rx power calculation
      UBUNTU: SAUCE: rtw88: add phy_info debugfs to show Tx/Rx physical status

Tzu-En Huang (8):
      UBUNTU: SAUCE: rtw88: 8822c: add SW DPK support
      UBUNTU: SAUCE: rtw88: add dynamic cck pd mechanism
      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 (22):
      UBUNTU: SAUCE: rtw88: 8822c: update PHY parameter to v38
      UBUNTU: SAUCE: rtw88: 8822c: add FW IQK support
      UBUNTU: SAUCE: rtw88: move IQK/DPK into phy_calibration
      UBUNTU: SAUCE: rtw88: allows to receive AMSDU in AMPDU
      UBUNTU: SAUCE: rtw88: remove redundant flag check helper function
      UBUNTU: SAUCE: rtw88: pci: extract skbs free routine for trx rings
      UBUNTU: SAUCE: rtw88: pci: release tx skbs DMAed when stop
      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.oem-osp1/config/config.common.ubuntu        |    1 +
 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          |   40 +-
 drivers/net/wireless/realtek/rtw88/coex.h          |    1 +
 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      |  273 +-
 drivers/net/wireless/realtek/rtw88/main.c          |  380 +-
 drivers/net/wireless/realtek/rtw88/main.h          |  412 +-
 drivers/net/wireless/realtek/rtw88/pci.c           |  326 +-
 drivers/net/wireless/realtek/rtw88/pci.h           |   21 +-
 drivers/net/wireless/realtek/rtw88/phy.c           |  448 +-
 drivers/net/wireless/realtek/rtw88/phy.h           |   25 +
 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           |  158 +-
 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      |  424 +-
 drivers/net/wireless/realtek/rtw88/rtw8822b.h      |   12 +
 drivers/net/wireless/realtek/rtw88/rtw8822c.c      | 1986 +++++-
 drivers/net/wireless/realtek/rtw88/rtw8822c.h      |   98 +
 .../net/wireless/realtek/rtw88/rtw8822c_table.c    | 6930 ++++++++++++++------
 .../net/wireless/realtek/rtw88/rtw8822c_table.h    |    3 +
 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 +
 49 files changed, 17135 insertions(+), 2720 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