Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1469251pxb; Thu, 28 Jan 2021 18:23:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJxowoCkg+nag4sWHBXuRx8EsjksSJHVFQjFrODbJoq4DgEoRRCSp0K1+Dpn5G1xQUUsrb1N X-Received: by 2002:a05:6402:c16:: with SMTP id co22mr2902634edb.175.1611887035551; Thu, 28 Jan 2021 18:23:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611887035; cv=none; d=google.com; s=arc-20160816; b=j4sG/kCHaQy49sfTX4+pHHPUJUwzr/Kb3wY4zdxfSHJznGm3XqZdMhs/5XCcf0thSb uBylMKpLDSaJJDNIClTHJu78Ss1QvOCLU39LCnpy2fDYB/rX/ILctGt8YBrBr3ytPNpp l2CTPwu1428/ytpX+Y5dnrDT9J31bw6nsw2ZsIHwSkG5gt1359wu6oXPzbd5M2SlFdV0 ohtiQMa7xPWLtFsbjs4OnqMcoZebLyH7b6+DUwpSWrthWoJe3CL9U5H0TM224eWdsJ2f LjIxXUmlQXYH/5gJgR1u07LKbSlwpEYPf9vJZNuzvXHO0E74xx3TqzIBxxz9lo43EEE5 ApXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:authenticated-by; bh=DXUOIrMQOivb1Z+O9CyxTWpo/nGKzolo0YuUgJIWc9o=; b=uZP0KO/VICI5gqlHdXqj9qgGuTMxxFiCFjxmow3rCZvEx31QTB5OFzGzNpT1GeLseX xviw0OmNcDvWF7y0aqfAE0JdkeFyNEmADhyn0gI53aK9Xo83D4GLLNcNqrmX/TcNvlBS gpMGO6rY7CDTCaKNAw+zFYAHdH9wilJaZyupCPlBkwjuQH9Lh+D7gq2DcZ1BxG1hIuaP Or5eUTBAKDnniVGC9iDfSKtOvqG5qmVR4T3mfpGTlKoO/JBFk3OV/X7awf8094nJx6hg PjD3TZFlubL330R2Y6yQqzMndGVsWGqXpZq9OUSMroh+mP5dHvU2LN9qclibqFjsQj8P pmkQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v20si3915120ejh.685.2021.01.28.18.23.32; Thu, 28 Jan 2021 18:23:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231608AbhA2CXF (ORCPT + 99 others); Thu, 28 Jan 2021 21:23:05 -0500 Received: from rtits2.realtek.com ([211.75.126.72]:42597 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231551AbhA2CXC (ORCPT ); Thu, 28 Jan 2021 21:23:02 -0500 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.73 with qID 10T2MFowC015057, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexmbs04.realtek.com.tw[172.21.6.97]) by rtits2.realtek.com.tw (8.15.2/2.70/5.88) with ESMTPS id 10T2MFowC015057 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Fri, 29 Jan 2021 10:22:15 +0800 Received: from localhost (172.21.69.213) by RTEXMBS04.realtek.com.tw (172.21.6.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Fri, 29 Jan 2021 10:22:15 +0800 From: Ping-Ke Shih To: CC: Subject: [PATCH v3 00/18] rtw89: add Realtek 802.11ax driver Date: Fri, 29 Jan 2021 10:20:59 +0800 Message-ID: <20210129022117.28463-1-pkshih@realtek.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [172.21.69.213] X-ClientProxiedBy: RTEXMBS02.realtek.com.tw (172.21.6.95) To RTEXMBS04.realtek.com.tw (172.21.6.97) Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org This driver named rtw89, which is the next generation of rtw88, supports Realtek 8852AE 802.11ax 2x2 chip whose new features are OFDMA, DBCC, Spatial reuse, TWT and BSS coloring; now some of them aren't implemented though. The chip architecture is entirely different from the chips supported by rtw88 like RTL8822CE 802.11ac chip. First of all, register address ranges are totally redefined, so it's impossible to reuse register definition. To communicate with firmware, new H2C/C2H format is proposed. In order to have better utilization, TX DMA flow is changed to two stages DMA. To provide rich RX status information, additional RX PPDU packets are added. Since there are so many differences mentioned above, we decide to propose a new driver. It has many authors, they are listed in alphabetic order: Chin-Yen Lee Ping-Ke Shih Po Hao Huang Tzu-En Huang Vincent Fann Yan-Hsuan Chuang Zong-Zhe Yang v2: - fix compiler warnings made by W=1 Reported-by: kernel test robot - sort header file alphabetically - fix "networking block comments" reported by checkpatch v3: - fix "networking block comments" reported by checkpatch - Add MODULE_DEVICE_TABLE() generated by Thomas Backlund - Add missed BB settings - error handle of RX BD and DESC length - reduce debug level of C2H ACKs - fix rekey failure due to wrong operator Ping-Ke Shih (18): rtw89: add CAM files rtw89: add BT coexistence files rtw89: add core and trx files rtw89: add debug files rtw89: add efuse files rtw89: add files to download and communicate with firmware rtw89: add MAC files rtw89: implement mac80211 ops rtw89: add pci files rtw89: add phy files rtw89: define register names rtw89: add regulatory support rtw89: 8852a: add 8852a specific files rtw89: 8852a: add 8852a RFK files rtw89: 8852a: add 8852a RFK tables rtw89: 8852a: add 8852a tables rtw89: add ser to recover error reported by firmware rtw89: add Kconfig and Makefile drivers/net/wireless/realtek/Kconfig | 1 + drivers/net/wireless/realtek/Makefile | 1 + drivers/net/wireless/realtek/rtw89/Kconfig | 50 + drivers/net/wireless/realtek/rtw89/Makefile | 23 + drivers/net/wireless/realtek/rtw89/cam.c | 669 + drivers/net/wireless/realtek/rtw89/cam.h | 164 + drivers/net/wireless/realtek/rtw89/coex.c | 385 + drivers/net/wireless/realtek/rtw89/coex.h | 102 + drivers/net/wireless/realtek/rtw89/core.c | 1733 ++ drivers/net/wireless/realtek/rtw89/core.h | 1918 ++ drivers/net/wireless/realtek/rtw89/debug.c | 1927 ++ drivers/net/wireless/realtek/rtw89/debug.h | 75 + drivers/net/wireless/realtek/rtw89/efuse.c | 188 + drivers/net/wireless/realtek/rtw89/efuse.h | 13 + drivers/net/wireless/realtek/rtw89/fw.c | 990 + drivers/net/wireless/realtek/rtw89/fw.h | 1056 + drivers/net/wireless/realtek/rtw89/mac.c | 3259 ++ drivers/net/wireless/realtek/rtw89/mac.h | 763 + drivers/net/wireless/realtek/rtw89/mac80211.c | 521 + drivers/net/wireless/realtek/rtw89/pci.c | 2598 ++ drivers/net/wireless/realtek/rtw89/pci.h | 560 + drivers/net/wireless/realtek/rtw89/phy.c | 2474 ++ drivers/net/wireless/realtek/rtw89/phy.h | 278 + drivers/net/wireless/realtek/rtw89/reg.h | 1855 ++ drivers/net/wireless/realtek/rtw89/regd.c | 351 + drivers/net/wireless/realtek/rtw89/rtw8852a.c | 1357 + drivers/net/wireless/realtek/rtw89/rtw8852a.h | 78 + .../net/wireless/realtek/rtw89/rtw8852a_rfk.c | 3558 +++ .../net/wireless/realtek/rtw89/rtw8852a_rfk.h | 20 + .../realtek/rtw89/rtw8852a_rfk_table.c | 1561 + .../realtek/rtw89/rtw8852a_rfk_table.h | 129 + .../wireless/realtek/rtw89/rtw8852a_table.c | 24997 ++++++++++++++++ .../wireless/realtek/rtw89/rtw8852a_table.h | 28 + drivers/net/wireless/realtek/rtw89/ser.c | 427 + drivers/net/wireless/realtek/rtw89/ser.h | 14 + drivers/net/wireless/realtek/rtw89/txrx.h | 385 + 36 files changed, 54508 insertions(+) create mode 100644 drivers/net/wireless/realtek/rtw89/Kconfig create mode 100644 drivers/net/wireless/realtek/rtw89/Makefile create mode 100644 drivers/net/wireless/realtek/rtw89/cam.c create mode 100644 drivers/net/wireless/realtek/rtw89/cam.h create mode 100644 drivers/net/wireless/realtek/rtw89/coex.c create mode 100644 drivers/net/wireless/realtek/rtw89/coex.h create mode 100644 drivers/net/wireless/realtek/rtw89/core.c create mode 100644 drivers/net/wireless/realtek/rtw89/core.h create mode 100644 drivers/net/wireless/realtek/rtw89/debug.c create mode 100644 drivers/net/wireless/realtek/rtw89/debug.h create mode 100644 drivers/net/wireless/realtek/rtw89/efuse.c create mode 100644 drivers/net/wireless/realtek/rtw89/efuse.h create mode 100644 drivers/net/wireless/realtek/rtw89/fw.c create mode 100644 drivers/net/wireless/realtek/rtw89/fw.h create mode 100644 drivers/net/wireless/realtek/rtw89/mac.c create mode 100644 drivers/net/wireless/realtek/rtw89/mac.h create mode 100644 drivers/net/wireless/realtek/rtw89/mac80211.c create mode 100644 drivers/net/wireless/realtek/rtw89/pci.c create mode 100644 drivers/net/wireless/realtek/rtw89/pci.h create mode 100644 drivers/net/wireless/realtek/rtw89/phy.c create mode 100644 drivers/net/wireless/realtek/rtw89/phy.h create mode 100644 drivers/net/wireless/realtek/rtw89/reg.h create mode 100644 drivers/net/wireless/realtek/rtw89/regd.c create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a.c create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a.h create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.h create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk_table.c create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_rfk_table.h create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_table.c create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8852a_table.h create mode 100644 drivers/net/wireless/realtek/rtw89/ser.c create mode 100644 drivers/net/wireless/realtek/rtw89/ser.h create mode 100644 drivers/net/wireless/realtek/rtw89/txrx.h -- 2.21.0