From patchwork Fri Sep 21 06:03:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Chuang X-Patchwork-Id: 10609087 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D074B157B for ; Fri, 21 Sep 2018 06:04:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C022A284ED for ; Fri, 21 Sep 2018 06:04:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B387D2DDF1; Fri, 21 Sep 2018 06:04:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C8112284ED for ; Fri, 21 Sep 2018 06:04:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389076AbeIULwJ (ORCPT ); Fri, 21 Sep 2018 07:52:09 -0400 Received: from rtits2.realtek.com ([211.75.126.72]:40777 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725898AbeIULwJ (ORCPT ); Fri, 21 Sep 2018 07:52:09 -0400 Authenticated-By: X-SpamFilter-By: BOX Solutions SpamTrap 5.62 with qID w8L64fpK028112, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtitcasv01.realtek.com.tw[172.21.6.18]) by rtits2.realtek.com.tw (8.15.2/2.57/5.78) with ESMTPS id w8L64fpK028112 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NOT); Fri, 21 Sep 2018 14:04:41 +0800 Received: from localhost.localdomain (172.21.68.143) by RTITCASV01.realtek.com.tw (172.21.6.18) with Microsoft SMTP Server id 14.3.408.0; Fri, 21 Sep 2018 14:04:40 +0800 From: To: CC: , , , Subject: [RFC 00/12] rtwlan: mac80211 driver for Realtek 802.11ac wireless network chips Date: Fri, 21 Sep 2018 14:03:55 +0800 Message-ID: <1537509847-21087-1-git-send-email-yhchuang@realtek.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Originating-IP: [172.21.68.143] Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Yan-Hsuan Chuang This is a new mac80211 driver for Realtek 802.11ac wireless network chips. rtwlan supports 8822BE and 8822CE chips, and will be able to support multi-vif combinations in run-time. For now, only PCI bus is supported, but rtwlan was originally designed to optionally support three buses includes USB & SDIO. USB & SDIO modules will soon be supported by rtwlan, with configurable core module to fit with different bus modules in the same time. For example, if we choose 8822BE and 8822CU, only PCI & USB modules will be selected, built, loaded into kernel. This is one of the major difference from rtlwifi, which can only support specific combinations. Another difference from rtlwifi is that rtwlan is designed to support the latest Realtek 802.11ac wireless network chips like 8822B and 8822C series. Compared to the earlier chips supported by rtlwifi like the 802.11n 8192EE chipset or 802.11ac 8821AE/8812AE chips, newer ICs have different MAC & PHY settings, such as new multi-port feature for the MAC layer design and Jaguar2/Jaguar3 PHY layer IPs. Multi-Port feature is also supported under rtwlan's software architecture. rtlwifi can only support one vif in the same time, most because of the hardware limitations for early chips, hence the original design of it also restricts the usage of multi-vif support, so latest chipset seems not take advantages from its new MAC engine. However, rtwlan can run multiple vifs concurrently by holding them on hardware ports provided by MAC engine, so we can easily start different roles on a single device. Based on the reasons mentioned before, we implemented rtwlan. It had many authors, they are listed here alphabetically: Ping-Ke Shih Tzu-En Huang Yan-Hsuan Chuang Signed-off-by: Yan-Hsuan Chuang Signed-off-by: Ping-Ke Shih Yan-Hsuan Chuang (12): rtwlan: main files rtwlan: core files rtwlan: hci files rtwlan: trx files rtwlan: mac files rtwlan: fw and efuse files rtwlan: phy files rtwlan: debug files rtwlan: chip files rtwlan: 8822B init table rtwlan: 8822C init table rtwlan: Kconfig & Makefile drivers/net/wireless/realtek/Kconfig | 1 + drivers/net/wireless/realtek/Makefile | 1 + drivers/net/wireless/realtek/rtwlan/Kconfig | 55 + drivers/net/wireless/realtek/rtwlan/Makefile | 21 + drivers/net/wireless/realtek/rtwlan/debug.c | 653 + drivers/net/wireless/realtek/rtwlan/debug.h | 45 + drivers/net/wireless/realtek/rtwlan/efuse.c | 153 + drivers/net/wireless/realtek/rtwlan/efuse.h | 53 + drivers/net/wireless/realtek/rtwlan/fw.c | 640 + drivers/net/wireless/realtek/rtwlan/fw.h | 182 + drivers/net/wireless/realtek/rtwlan/hci.h | 212 + drivers/net/wireless/realtek/rtwlan/mac.c | 1063 + drivers/net/wireless/realtek/rtwlan/mac.h | 35 + drivers/net/wireless/realtek/rtwlan/mac80211.c | 447 + drivers/net/wireless/realtek/rtwlan/main.c | 1164 ++ drivers/net/wireless/realtek/rtwlan/main.h | 1188 ++ drivers/net/wireless/realtek/rtwlan/pci.c | 1217 ++ drivers/net/wireless/realtek/rtwlan/pci.h | 227 + drivers/net/wireless/realtek/rtwlan/phy.c | 1671 ++ drivers/net/wireless/realtek/rtwlan/phy.h | 125 + drivers/net/wireless/realtek/rtwlan/ps.c | 193 + drivers/net/wireless/realtek/rtwlan/ps.h | 21 + drivers/net/wireless/realtek/rtwlan/reg.h | 399 + drivers/net/wireless/realtek/rtwlan/regd.c | 462 + drivers/net/wireless/realtek/rtwlan/regd.h | 40 + drivers/net/wireless/realtek/rtwlan/rtw8822b.c | 1572 ++ drivers/net/wireless/realtek/rtwlan/rtw8822b.h | 270 + .../net/wireless/realtek/rtwlan/rtw8822b_table.c | 20783 +++++++++++++++++++ .../net/wireless/realtek/rtwlan/rtw8822b_table.h | 18 + drivers/net/wireless/realtek/rtwlan/rtw8822c.c | 1164 ++ drivers/net/wireless/realtek/rtwlan/rtw8822c.h | 403 + .../net/wireless/realtek/rtwlan/rtw8822c_table.c | 4150 ++++ .../net/wireless/realtek/rtwlan/rtw8822c_table.h | 16 + drivers/net/wireless/realtek/rtwlan/rx.c | 138 + drivers/net/wireless/realtek/rtwlan/rx.h | 30 + drivers/net/wireless/realtek/rtwlan/sec.c | 135 + drivers/net/wireless/realtek/rtwlan/sec.h | 40 + drivers/net/wireless/realtek/rtwlan/tx.c | 271 + drivers/net/wireless/realtek/rtwlan/tx.h | 81 + 39 files changed, 39339 insertions(+) create mode 100644 drivers/net/wireless/realtek/rtwlan/Kconfig create mode 100644 drivers/net/wireless/realtek/rtwlan/Makefile create mode 100644 drivers/net/wireless/realtek/rtwlan/debug.c create mode 100644 drivers/net/wireless/realtek/rtwlan/debug.h create mode 100644 drivers/net/wireless/realtek/rtwlan/efuse.c create mode 100644 drivers/net/wireless/realtek/rtwlan/efuse.h create mode 100644 drivers/net/wireless/realtek/rtwlan/fw.c create mode 100644 drivers/net/wireless/realtek/rtwlan/fw.h create mode 100644 drivers/net/wireless/realtek/rtwlan/hci.h create mode 100644 drivers/net/wireless/realtek/rtwlan/mac.c create mode 100644 drivers/net/wireless/realtek/rtwlan/mac.h create mode 100644 drivers/net/wireless/realtek/rtwlan/mac80211.c create mode 100644 drivers/net/wireless/realtek/rtwlan/main.c create mode 100644 drivers/net/wireless/realtek/rtwlan/main.h create mode 100644 drivers/net/wireless/realtek/rtwlan/pci.c create mode 100644 drivers/net/wireless/realtek/rtwlan/pci.h create mode 100644 drivers/net/wireless/realtek/rtwlan/phy.c create mode 100644 drivers/net/wireless/realtek/rtwlan/phy.h create mode 100644 drivers/net/wireless/realtek/rtwlan/ps.c create mode 100644 drivers/net/wireless/realtek/rtwlan/ps.h create mode 100644 drivers/net/wireless/realtek/rtwlan/reg.h create mode 100644 drivers/net/wireless/realtek/rtwlan/regd.c create mode 100644 drivers/net/wireless/realtek/rtwlan/regd.h create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822b.c create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822b.h create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822b_table.c create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822b_table.h create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822c.c create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822c.h create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822c_table.c create mode 100644 drivers/net/wireless/realtek/rtwlan/rtw8822c_table.h create mode 100644 drivers/net/wireless/realtek/rtwlan/rx.c create mode 100644 drivers/net/wireless/realtek/rtwlan/rx.h create mode 100644 drivers/net/wireless/realtek/rtwlan/sec.c create mode 100644 drivers/net/wireless/realtek/rtwlan/sec.h create mode 100644 drivers/net/wireless/realtek/rtwlan/tx.c create mode 100644 drivers/net/wireless/realtek/rtwlan/tx.h