From patchwork Thu Feb 20 11:30:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai-Heng Feng X-Patchwork-Id: 1241361 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48NXSy5PH5z9sRN; Thu, 20 Feb 2020 22:30:25 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1j4k25-00029F-H8; Thu, 20 Feb 2020 11:30:17 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1j4k23-000293-CY for kernel-team@lists.ubuntu.com; Thu, 20 Feb 2020 11:30:15 +0000 Received: from 61-220-137-37.hinet-ip.hinet.net ([61.220.137.37] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1j4k22-00070S-IJ for kernel-team@lists.ubuntu.com; Thu, 20 Feb 2020 11:30:15 +0000 From: Kai-Heng Feng To: kernel-team@lists.ubuntu.com Subject: [Pull] [Unstable] Add support for Realtek 8723DE wireless adapter Date: Thu, 20 Feb 2020 19:30:11 +0800 Message-Id: <20200220113011.30236-1-kai.heng.feng@canonical.com> X-Mailer: git-send-email 2.17.1 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" 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 97a9de9213830cac73cbcd3ff2cc15a6c6dae37f: UBUNTU: [Config] CONFIG_LOCK_DOWN_IN_SECURE_BOOT=y (2020-02-19 13:24:14 -0600) are available in the Git repository at: https://git.launchpad.net/~kaihengfeng/linux lp1780590-unstable for you to fetch changes up to 6c831b2d9cf1715a0427a9bf36ffa3a4ba0bb29a: UBUNTU: [Config] CONFIG_RTW88_8723DE=y (2020-02-20 15:22:05 +0800) ---------------------------------------------------------------- Brian Norris (1): UBUNTU: SAUCE: rtw88: don't hold all IRQs disabled for PS operations Chien-Hsun Liao (1): UBUNTU: SAUCE: rtw88: 8822c: modify rf protection setting Kai-Heng Feng (1): UBUNTU: [Config] CONFIG_RTW88_8723DE=y Ping-Ke Shih (42): 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 Tzu-En Huang (6): 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 (10): 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 debian.master/config/annotations | 2 + debian.master/config/config.common.ubuntu | 2 + drivers/net/wireless/realtek/rtw88/Kconfig | 20 + drivers/net/wireless/realtek/rtw88/Makefile | 2 + drivers/net/wireless/realtek/rtw88/bf.c | 13 +- drivers/net/wireless/realtek/rtw88/bf.h | 22 + drivers/net/wireless/realtek/rtw88/coex.c | 3 + drivers/net/wireless/realtek/rtw88/debug.c | 51 +- drivers/net/wireless/realtek/rtw88/efuse.c | 4 + drivers/net/wireless/realtek/rtw88/fw.c | 330 ++- drivers/net/wireless/realtek/rtw88/fw.h | 61 +- drivers/net/wireless/realtek/rtw88/hci.h | 26 + drivers/net/wireless/realtek/rtw88/mac.c | 438 +++- drivers/net/wireless/realtek/rtw88/mac.h | 1 + drivers/net/wireless/realtek/rtw88/mac80211.c | 66 +- drivers/net/wireless/realtek/rtw88/main.c | 98 +- drivers/net/wireless/realtek/rtw88/main.h | 152 ++ drivers/net/wireless/realtek/rtw88/pci.c | 143 +- drivers/net/wireless/realtek/rtw88/pci.h | 5 +- drivers/net/wireless/realtek/rtw88/phy.c | 308 ++- drivers/net/wireless/realtek/rtw88/phy.h | 12 + drivers/net/wireless/realtek/rtw88/reg.h | 110 + 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 | 71 +- drivers/net/wireless/realtek/rtw88/rtw8822b.h | 6 + drivers/net/wireless/realtek/rtw88/rtw8822c.c | 93 +- drivers/net/wireless/realtek/rtw88/rtw8822c.h | 7 + drivers/net/wireless/realtek/rtw88/sar.c | 778 ++++++ drivers/net/wireless/realtek/rtw88/sar.h | 15 + drivers/net/wireless/realtek/rtw88/sec.c | 6 +- drivers/net/wireless/realtek/rtw88/tx.c | 175 +- drivers/net/wireless/realtek/rtw88/tx.h | 31 +- drivers/net/wireless/realtek/rtw88/util.c | 18 +- drivers/net/wireless/realtek/rtw88/wow.c | 43 +- 38 files changed, 6971 insertions(+), 422 deletions(-) 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