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

Kai-Heng Feng kai.heng.feng at canonical.com
Mon Dec 23 07:31:46 UTC 2019


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 at canonical.com> wrote:
> 
> 
>> 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