mbox series

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

Message ID 20191210074014.16829-1-kai.heng.feng@canonical.com
State New
Headers show
Series [PULL,Focal/Unstable] Add support for Realtek 8723DE wireless adapter | expand

Pull-request

https://git.launchpad.net/~kaihengfeng/linux rtw88

Message

Kai-Heng Feng Dec. 10, 2019, 7:40 a.m. UTC
[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

Comments

Kai-Heng Feng Dec. 10, 2019, 7:41 a.m. UTC | #1
> On Dec 10, 2019, at 15:40, Kai-Heng Feng <kai.heng.feng@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@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
Kai-Heng Feng Dec. 23, 2019, 7:31 a.m. UTC | #2
Seth, Andrea,

Can you please take a look at this pull, thanks!

Kai-Heng

> On Dec 10, 2019, at 15:41, Kai-Heng Feng <kai.heng.feng@canonical.com> wrote:
> 
> 
>> On Dec 10, 2019, at 15:40, Kai-Heng Feng <kai.heng.feng@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@lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>
Seth Forshee Jan. 7, 2020, 8:37 p.m. UTC | #3
On Tue, Dec 10, 2019 at 03:40:14PM +0800, Kai-Heng Feng wrote:
> [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.

I'm okay with applying these, but it looks like they need a refresh.
Many of the patches are upstream in 5.5, so they should not be sauce and
should have the upstream sha1s (if they don't matche the ones from the
rtw88_8723de tree, I didn't check). Unstable has many of the patches
already, and I was hitting conflicts with the others. We should also
update the annotations with the new config options.

So let's get these refreshed, then we can apply them.

Thanks,
Seth