[Pull] [Focal] Add support for Realtek 8723DE wireless adapter
Kai-Heng Feng
kai.heng.feng at canonical.com
Thu Feb 20 06:03:53 UTC 2020
> On Feb 20, 2020, at 00:28, Timo Aaltonen <tjaalton at ubuntu.com> wrote:
>
> On 19.2.2020 18.26, Timo Aaltonen wrote:
>> On 19.2.2020 16.53, Kai-Heng Feng wrote:
>>> 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
>>>
>>> [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.
>>>
>>> [Pull]
>>> The following changes since commit 0efe88b03bdc64cef646c9ea785c464a3f4952dd:
>>>
>>> UBUNTU: Ubuntu-5.4-5.4.0-15.18 (2020-02-18 12:19:31 +0100)
>>>
>>> are available in the Git repository at:
>>>
>>> https://git.launchpad.net/~kaihengfeng/linux lp1780590-focal
>>>
>>> for you to fetch changes up to 1fe3af62dbee1784cfd23e7d755186ee2fc542b6:
>>>
>>> UBUNTU: [Config] CONFIG_RTW88_8723DE=y (2020-02-19 19:50:47 +0800)
>>>
>>> ----------------------------------------------------------------
>>> Brian Norris (5):
>>> rtw88: use a for loop in rtw_power_mode_change(), not goto
>>> rtw88: include interrupt.h for tasklet_struct
>>> rtw88: mark rtw_fw_hdr __packed
>>> rtw88: signal completion even on firmware-request failure
>>> UBUNTU: SAUCE: rtw88: don't hold all IRQs disabled for PS operations
>>>
>>> Chien-Hsun Liao (1):
>>> UBUNTU: SAUCE: rtw88: 8822c: modify rf protection setting
>>>
>>> Chin-Yen Lee (9):
>>> rtw88: check firmware leave lps successfully
>>> rtw88: pci: reset ring index when release skbs in tx ring
>>> rtw88: pci: reset dma when reset pci trx ring
>>> rtw88: load wowlan firmware if wowlan is supported
>>> rtw88: support wowlan feature for 8822c
>>> rtw88: Add wowlan pattern match support
>>> rtw88: Add wowlan net-detect support
>>> rtw88: use rtw_hci_stop() instead of rtwdev->hci.ops->stop()
>>> rtw88: Fix return value of rtw_wow_check_fw_status
>>>
>>> Colin Ian King (1):
>>> rtw88: remove redundant null pointer check on arrays
>>>
>>> Dan Carpenter (1):
>>> rtw88: Fix an error message
>>>
>>> Johannes Berg (1):
>>> mac80211: simplify TX aggregation start
>>>
>>> Kai-Heng Feng (1):
>>> UBUNTU: [Config] CONFIG_RTW88_8723DE=y
>>>
>>> Ping-Ke Shih (46):
>>> rtw88: Don't set RX_FLAG_DECRYPTED if packet has no encryption
>>> rtw88: use struct rtw_fw_hdr to access firmware header
>>> rtw88: fix rate mask for 1SS chip
>>> rtw88: fix TX secondary channel offset of 40M if current bw is 20M or 40M
>>> UBUNTU: SAUCE: rtw88: Use secondary channel offset enumeration
>>> UBUNTU: SAUCE: rtw88: move rtw_enter_ips() to the last when config
>>> UBUNTU: SAUCE: rtw88: add ciphers to suppress error message
>>> UBUNTU: SAUCE: rtw88: 8723d: Add basic chip capabilities
>>> UBUNTU: SAUCE: rtw88: 8723d: add beamform wrapper functions
>>> 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 cfg_ldo25 to control LDO25
>>> UBUNTU: SAUCE: rtw88: 8723d: Add new chip op efuse_grant() to control efuse access
>>> UBUNTU: SAUCE: rtw88: 8723d: Add read_efuse to recognize efuse info from map
>>> UBUNTU: SAUCE: rtw88: add legacy firmware download for 8723D devices
>>> UBUNTU: SAUCE: rtw88: no need to send additional information to legacy firmware
>>> UBUNTU: SAUCE: rtw88: 8723d: Add 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 set_tx_power_index ops
>>> 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 query_rx_desc
>>> UBUNTU: SAUCE: rtw88: 8723d: Add set_channel
>>> UBUNTU: SAUCE: rtw88: handle C2H_CCX_TX_RPT to know if packet TX'ed successfully
>>> UBUNTU: SAUCE: rtw88: 8723d: 11N chips don't support LDPC
>>> UBUNTU: SAUCE: rtw88: sar: add SAR of TX power limit
>>> UBUNTU: SAUCE: rtw88: sar: Load static SAR table from ACPI WRDS method
>>> UBUNTU: SAUCE: rtw88: sar: Load dynamic SAR table from ACPI methods
>>> UBUNTU: SAUCE: rtw88: sar: apply dynamic SAR table to tx power limit
>>> UBUNTU: SAUCE: rtw88: sar: add sar_work to poll if dynamic SAR table is changed
>>> UBUNTU: SAUCE: rtw88: sar: dump sar information via debugfs
>>> UBUNTU: SAUCE: rtw88: 8723d: Add chip_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 BT 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: fill zeros to words 0x06 and 0x07 of security cam entry
>>> UBUNTU: SAUCE: rtw88: 8723d: Add 8723DE to Kconfig and Makefile
>>>
>>> Tsang-Shian Lin (1):
>>> rtw88: add phy_info debugfs to show Tx/Rx physical status
>>>
>>> Tzu-En Huang (14):
>>> rtw88: report tx rate to mac80211 stack
>>> rtw88: config 8822c multicast address in MAC init flow
>>> rtw88: add NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 support
>>> rtw88: add power tracking support
>>> rtw88: Enable 802.11ac beamformee support
>>> rtw88: add set_bitrate_mask support
>>> rtw88: 8822c: update power sequence to v15
>>> rtw88: remove unused spinlock
>>> UBUNTU: SAUCE: rtw88: add regulatory process strategy for different chipset
>>> UBUNTU: SAUCE: rtw88: support dynamic user regulatory setting
>>> UBUNTU: SAUCE: rtw88: 8822c: update power sequence to v16
>>> UBUNTU: SAUCE: rtw88: Fix incorrect beamformee role setting
>>> UBUNTU: SAUCE: rtw88: add adaptivity support for EU/JP regulatory
>>> UBUNTU: SAUCE: rtw88: update tx descriptor of mgmt and rsvd page packets
>>>
>>> Yan-Hsuan Chuang (52):
>>> rtw88: 8822c: fix boolreturn.cocci warnings
>>> rtw88: remove redundant flag check helper function
>>> rtw88: pci: reset H2C queue indexes in a single write
>>> rtw88: not to enter or leave PS under IRQ
>>> rtw88: not to control LPS by each vif
>>> rtw88: remove unused lps state check helper
>>> rtw88: LPS enter/leave should be protected by lock
>>> rtw88: leave PS state for dynamic mechanism
>>> rtw88: add deep power save support
>>> rtw88: not to enter LPS by coex strategy
>>> rtw88: select deep PS mode when module is inserted
>>> rtw88: add deep PS PG mode for 8822c
>>> rtw88: remove misleading module parameter rtw_fw_support_lps
>>> rtw88: allows to set RTS in TX descriptor
>>> rtw88: add driver TX queue support
>>> rtw88: take over rate control from mac80211
>>> rtw88: add TX-AMSDU support
>>> rtw88: flush hardware tx queues
>>> rtw88: configure TX queue EDCA parameters
>>> rtw88: raise firmware version debug level
>>> rtw88: Use rtw_write8_set to set SYS_FUNC
>>> rtw88: pci: config phy after chip info is setup
>>> rtw88: use macro to check the current band
>>> rtw88: fix GENMASK_ULL for u64
>>> rtw88: fix sparse warnings for DPK
>>> rtw88: fix sparse warnings for power tracking
>>> rtw88: 8822b: add RFE type 3 support
>>> rtw88: use rtw_phy_pg_cfg_pair struct, not arrays
>>> rtw88: rearrange if..else statements for rx rate indexes
>>> rtw88: avoid FW info flood
>>> rtw88: raise LPS threshold to 50, for less power consumption
>>> rtw88: fix potential NULL pointer access for firmware
>>> rtw88: pci: use macros to access PCI DBI/MDIO registers
>>> rtw88: pci: use for loop instead of while loop for DBI/MDIO
>>> rtw88: pci: enable CLKREQ function if host supports it
>>> rtw88: allows to enable/disable HCI link PS mechanism
>>> rtw88: add interface config for 8822c
>>> rtw88: remove unused variable 'in_lps'
>>> rtw88: remove unused vif pointer in struct rtw_vif
>>> rtw88: assign NULL to skb after being kfree()'ed
>>> rtw88: fix potential NULL skb access in TX ISR
>>> rtw88: use shorter delay time to poll PS state
>>> UBUNTU: SAUCE: rtw88: disable TX-AMSDU on 2.4G band
>>> UBUNTU: SAUCE: Revert "rtw88: disable TX-AMSDU on 2.4G band"
>>> UBUNTU: SAUCE: rtw88: disable TX-AMSDU on 2.4G band
>>> UBUNTU: SAUCE: rtw88: remove unused parameter vif in rtw_lps_pg_info_get()
>>> UBUNTU: SAUCE: rtw88: add rtw_read8_mask and rtw_read16_mask
>>> UBUNTU: SAUCE: rtw88: pci: 8822c should set clock delay to zero
>>> UBUNTU: SAUCE: rtw88: avoid holding mutex for cancel_delayed_work_sync()
>>> UBUNTU: SAUCE: rtw88: extract alloc rsvd_page and h2c skb routines
>>> UBUNTU: SAUCE: rtw88: associate reserved pages with each vif
>>> UBUNTU: SAUCE: rtw88: set default port to firmware
>>>
>>> YueHaibing (1):
>>> rtw88: remove duplicated include from ps.c
>>>
>>> Zong-Zhe Yang (1):
>>> rtw88: change max_num_of_tx_queue() definition to inline in pci.h
>>>
>>> zhengbin (1):
>>> rtw88: use true,false for bool variable
>>>
>>> debian.master/config/annotations | 2 +
>>> debian.master/config/config.common.ubuntu | 2 +
>>> drivers/net/wireless/ath/ath9k/htc_drv_main.c | 2 +-
>>> drivers/net/wireless/ath/ath9k/main.c | 2 +-
>>> drivers/net/wireless/ath/carl9170/main.c | 3 +-
>>> drivers/net/wireless/ath/wcn36xx/main.c | 5 +-
>>> .../broadcom/brcm80211/brcmsmac/mac80211_if.c | 3 +-
>>> drivers/net/wireless/intel/iwlegacy/4965-mac.c | 2 +-
>>> drivers/net/wireless/intel/iwlwifi/dvm/tx.c | 2 +-
>>> drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 5 +-
>>> drivers/net/wireless/mac80211_hwsim.c | 3 +-
>>> drivers/net/wireless/marvell/mwl8k.c | 2 +-
>>> drivers/net/wireless/mediatek/mt76/mt7603/main.c | 3 +-
>>> drivers/net/wireless/mediatek/mt76/mt7615/main.c | 3 +-
>>> drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 3 +-
>>> drivers/net/wireless/mediatek/mt7601u/main.c | 3 +-
>>> drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 +-
>>> drivers/net/wireless/realtek/rtlwifi/base.c | 3 +-
>>> drivers/net/wireless/realtek/rtw88/Kconfig | 20 +
>>> drivers/net/wireless/realtek/rtw88/Makefile | 4 +
>>> drivers/net/wireless/realtek/rtw88/bf.c | 397 +++
>>> drivers/net/wireless/realtek/rtw88/bf.h | 114 +
>>> drivers/net/wireless/realtek/rtw88/coex.c | 17 +-
>>> drivers/net/wireless/realtek/rtw88/debug.c | 225 +-
>>> drivers/net/wireless/realtek/rtw88/debug.h | 3 +
>>> drivers/net/wireless/realtek/rtw88/efuse.c | 4 +
>>> drivers/net/wireless/realtek/rtw88/fw.c | 852 +++++-
>>> drivers/net/wireless/realtek/rtw88/fw.h | 323 ++-
>>> drivers/net/wireless/realtek/rtw88/hci.h | 44 +
>>> drivers/net/wireless/realtek/rtw88/mac.c | 546 +++-
>>> drivers/net/wireless/realtek/rtw88/mac.h | 7 +
>>> drivers/net/wireless/realtek/rtw88/mac80211.c | 357 ++-
>>> drivers/net/wireless/realtek/rtw88/main.c | 471 +++-
>>> drivers/net/wireless/realtek/rtw88/main.h | 459 +++-
>>> drivers/net/wireless/realtek/rtw88/pci.c | 421 ++-
>>> drivers/net/wireless/realtek/rtw88/pci.h | 23 +-
>>> drivers/net/wireless/realtek/rtw88/phy.c | 462 +++-
>>> drivers/net/wireless/realtek/rtw88/phy.h | 33 +
>>> drivers/net/wireless/realtek/rtw88/ps.c | 191 +-
>>> drivers/net/wireless/realtek/rtw88/ps.h | 18 +-
>>> drivers/net/wireless/realtek/rtw88/reg.h | 146 ++
>>> drivers/net/wireless/realtek/rtw88/regd.c | 63 +-
>>> drivers/net/wireless/realtek/rtw88/rtw8723d.c | 2762 ++++++++++++++++++++
>>> drivers/net/wireless/realtek/rtw88/rtw8723d.h | 245 ++
>>> .../net/wireless/realtek/rtw88/rtw8723d_table.c | 1196 +++++++++
>>> .../net/wireless/realtek/rtw88/rtw8723d_table.h | 15 +
>>> drivers/net/wireless/realtek/rtw88/rtw8822b.c | 540 +++-
>>> drivers/net/wireless/realtek/rtw88/rtw8822b.h | 18 +
>>> .../net/wireless/realtek/rtw88/rtw8822b_table.c | 829 +++++-
>>> .../net/wireless/realtek/rtw88/rtw8822b_table.h | 2 +
>>> drivers/net/wireless/realtek/rtw88/rtw8822c.c | 491 +++-
>>> drivers/net/wireless/realtek/rtw88/rtw8822c.h | 19 +
>>> .../net/wireless/realtek/rtw88/rtw8822c_table.c | 94 +-
>>> drivers/net/wireless/realtek/rtw88/rx.c | 101 +-
>>> drivers/net/wireless/realtek/rtw88/rx.h | 11 +
>>> drivers/net/wireless/realtek/rtw88/sar.c | 778 ++++++
>>> drivers/net/wireless/realtek/rtw88/sar.h | 15 +
>>> drivers/net/wireless/realtek/rtw88/sec.c | 27 +-
>>> drivers/net/wireless/realtek/rtw88/sec.h | 1 +
>>> drivers/net/wireless/realtek/rtw88/tx.c | 310 ++-
>>> drivers/net/wireless/realtek/rtw88/tx.h | 39 +-
>>> drivers/net/wireless/realtek/rtw88/util.c | 45 +-
>>> drivers/net/wireless/realtek/rtw88/util.h | 2 +
>>> drivers/net/wireless/realtek/rtw88/wow.c | 882 +++++++
>>> drivers/net/wireless/realtek/rtw88/wow.h | 58 +
>>> drivers/net/wireless/rsi/rsi_91x_mac80211.c | 3 +-
>>> include/net/mac80211.h | 11 +-
>>> net/mac80211/agg-tx.c | 9 +-
>>> 68 files changed, 12865 insertions(+), 890 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/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
>>>
>>
>> This should probably be added for the unstable tree as well?
>
> ..point being that it'd then automatically end up in oem-5.6.
Eventually 8723de support will land to upstream.
However, if it doesn't make in time for GG series, I'll request another pull.
Kai-Heng
>
>
> --
> t
More information about the kernel-team
mailing list