From patchwork Fri Apr 10 22:51:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryder Lee X-Patchwork-Id: 11483741 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AD17214B4 for ; Fri, 10 Apr 2020 22:52:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8F50B2083E for ; Fri, 10 Apr 2020 22:52:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="X65FebKX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726678AbgDJWvo (ORCPT ); Fri, 10 Apr 2020 18:51:44 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:26256 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726594AbgDJWvo (ORCPT ); Fri, 10 Apr 2020 18:51:44 -0400 X-UUID: 0b832ee3f2834a7ebc59c0a52d3f74dc-20200411 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=E6T8CvMlDePTd5m09V8Ph5AJ/o4Cuco49hQVLbeEteI=; b=X65FebKXikGbO/6t21XKiDx6fWiMN2ykCHKqTg6FbOOKEGBpSR4Dbr0jGivhkb2zs8S6n1L363wU3lI6DddAush4ghxfs89bNqiThWGXz1MtIG4lA0BLeP94k71wtvNKS1e02ZU2kqmv7Hsqp0+0MeZoi6SVKtsL3WoAAtTQTng=; X-UUID: 0b832ee3f2834a7ebc59c0a52d3f74dc-20200411 Received: from mtkexhb02.mediatek.inc [(172.21.101.103)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 2101390690; Sat, 11 Apr 2020 06:51:39 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs06n2.mediatek.inc (172.21.101.130) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 11 Apr 2020 06:51:37 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 11 Apr 2020 06:51:32 +0800 From: Ryder Lee To: Felix Fietkau , Lorenzo Bianconi CC: Shayne Chen , YF Luo , Yiwei Chung , Chih-Min Chen , Evelyn Tsai , Sean Wang , , , Ryder Lee Subject: [PATCH v1 00/16] Add MediaTek IEEE 802.11ax devices - MT7915E Date: Sat, 11 Apr 2020 06:51:15 +0800 Message-ID: X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 X-TM-SNTS-SMTP: DC6111F31614940DC01EC65F9A05269E44939643ADD1D0DF96176F1BA086E2D62000:8 X-MTK: N Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org MT7915E is the latest generation IEEE 802.11ax NIC in MediaTek, which currently supports AP, Station and Mesh mode. Even though some code of MT7915[1] are similar to MT7615. New generation has: - Huge amounts of HE dedicated parts. - New designs of PHY/firmware/DMA scheme. - Most fields of txd/txs/rxd/rxv are rearranged or deprecated. - Support much more offloading stuff. Most importantly, for the sake of convenience to get family devices supported in the future, it was concluded to be simpler to have a clean start for this generation. This makes maintenance easier and avoids major changes in MT7615, which currently shares the codes with low power capable device MT7663. It will increase the risk of regressions in existing flow. MT7915 supports only basic HE for the moment, whereas other 802.11ax specific features, such as BSS color, TWT, SR, DCM and OFDMA are work in progress, and will be gradually added in upcoming days. The firmwares are available now from https://github.com/ryderlee1110/wireless-fw , and will be submitted soon. At last, the developers are all listed in the series. [1] https://www.mediatek.com/blog/mediatek-mt7915-wi-fi-6-wave-1-chipset-builds-in-a-range-of-industry-firsts Thanks, Ryder Changes since v1 - - list a missing developer. - drop unused codes in the hw_tx_amsdu patch. - add a missing bitwidth change of wcid. - add more TODO items in the driver. Ryder Lee (16): mt76: avoid rx reorder buffer overflow mt76: add support for HE RX rate reporting mt76: add Rx stats support for radiotap mt76: adjust wcid size to support new 802.11ax generation mt76: add HE phy modes and hardware queue mt76: add mac80211 driver for MT7915 PCIe-based chipsets mt76: mt7915: implement HE per-rate tx power support mt76: mt7915: add offloading Tx AMSDU support mt76: mt7915: register HE capabilities for each interface mt76: mt7915: add HE bss_conf support for interfaces mt76: mt7915: add HE capabilities support for peers mt76: mt7915: add Rx radiotap header support mt76: mt7915: add .sta_add_debugfs support mt76: mt7915: add .sta_statistics support mt76: mt7915: set peer Tx fixed rate through debugfs mt76: mt7915: enable firmware module debug support drivers/net/wireless/mediatek/mt76/Kconfig | 1 + drivers/net/wireless/mediatek/mt76/Makefile | 1 + drivers/net/wireless/mediatek/mt76/agg-rx.c | 12 +- drivers/net/wireless/mediatek/mt76/mac80211.c | 10 +- drivers/net/wireless/mediatek/mt76/mt76.h | 45 +- .../net/wireless/mediatek/mt76/mt7915/Kconfig | 13 + .../wireless/mediatek/mt76/mt7915/Makefile | 6 + .../wireless/mediatek/mt76/mt7915/debugfs.c | 415 +++ .../net/wireless/mediatek/mt76/mt7915/dma.c | 283 ++ .../wireless/mediatek/mt76/mt7915/eeprom.c | 236 ++ .../wireless/mediatek/mt76/mt7915/eeprom.h | 125 + .../net/wireless/mediatek/mt76/mt7915/init.c | 592 ++++ .../net/wireless/mediatek/mt76/mt7915/mac.c | 1460 +++++++++ .../net/wireless/mediatek/mt76/mt7915/mac.h | 346 ++ .../net/wireless/mediatek/mt76/mt7915/main.c | 780 +++++ .../net/wireless/mediatek/mt76/mt7915/mcu.c | 2798 +++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mcu.h | 1003 ++++++ .../wireless/mediatek/mt76/mt7915/mt7915.h | 459 +++ .../net/wireless/mediatek/mt76/mt7915/pci.c | 213 ++ .../net/wireless/mediatek/mt76/mt7915/regs.h | 344 ++ 20 files changed, 9122 insertions(+), 20 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/Kconfig create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/Makefile create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/dma.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/init.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/mac.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/mac.h create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/main.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/mcu.h create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/pci.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7915/regs.h