From patchwork Thu Sep 30 23:47:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Wang X-Patchwork-Id: 12529557 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 814EBC433EF for ; Thu, 30 Sep 2021 23:58:33 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 467B26135E for ; Thu, 30 Sep 2021 23:58:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 467B26135E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:CC :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=CZwHncrcP7Z6GQqWJkFay1R2iGuYSGE1p/W3qwxN9XQ=; b=ClmYo02mFOhMqs Gs21OgoNpzUpvDxwJZsYYqBTMJkGS3lVARhqre/BuQ0mppJL6VCnr4pdw9oI2bDgWeyz6/NiuZ20V 9NG7WAHUchz+mgD9PfNtQ23tUwChHCfW/NC52atfNZhXqcx889TAVmm9URRu+HdVdf5+lQow5a9Cj uLlHSnBG6AIbWJbzHpu5TzXN1CrfpEcbwp7c0EfkYN2LlWdTQfLm6Roi4QTIIewaSshIKGZCTjJqR nwdpXCYZYSdOn96UxQcBiGlBOKA+lWewlBVJN7pjkh2Fm8palW0+XDmuGoBrGr63jQg7ObyWzhKs4 7g0AuCGHOQrxuVAqWZFg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mW5wS-00GCTn-GU; Thu, 30 Sep 2021 23:58:20 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mW5wO-00GCRK-G8 for linux-mediatek@lists.infradead.org; Thu, 30 Sep 2021 23:58:18 +0000 X-UUID: 4e4d6a3d097c435ab5e5d6eca7a3c678-20210930 X-UUID: 4e4d6a3d097c435ab5e5d6eca7a3c678-20210930 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 680559355; Thu, 30 Sep 2021 16:58:09 -0700 Received: from mtkcas11.mediatek.inc (172.21.101.40) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 30 Sep 2021 16:48:07 -0700 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 1 Oct 2021 07:48:05 +0800 From: To: , CC: , , , , , , , , , , , , , , , , , , , , , , Sean Wang Subject: [PATCH v3 00/16] Add MT7921 SDIO support Date: Fri, 1 Oct 2021 07:47:47 +0800 Message-ID: X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210930_165816_605214_B064E290 X-CRM114-Status: GOOD ( 17.94 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Sean Wang The patchset adds the SDIO support to the MT7921 driver, basically are made up of 3 parts. PART 1: patch 1-5, 8-9 and 12-14 These are preliminary patches for mt7921s driver to refactor and reuse the current mt7921e driver as much as possible. PART 2: patch 6-7, 10 These are preliminary patches for mt7921s driver to refactor and reuse the current mt7663s driver as much as possible. PART 3: patch 11 and 15-16 These are specific patches for mt7921s driver and reset mechanism in the same framework where mt7921e have been supported. The patchset are built and generated against the current mt76 tree plus the extra pending patches [1] expected to be merged to mt76 tree soon to help the review and merge process be easier. The change list from v1 to v2 1. rework the whole driver according to the new patches added ("mt76: introduce __mt76_mcu_send_firmware routine"), ("mt76: not accounting the MCU header size in __mt76_mcu_send_firmware for mt7915/21") and ("mt76: sdio: move common code in mt76_sdio module") 2. drop pci_init.c and sdio_init.c by moving the related logic to pci.c and sdio.c, respectively. 3. cosmetics the patches like removing unnecessary new line, adding an extra space to fixed_map table and so on ... 4. fix typo in commit message The change list from v2 to v3 1. rebase onto the latest mt76 branch 2. update per Lorenzo comments on v2 3. fix scheduling while atomic in mt7921_mac_sta_poll for mt7921s driver [1] The pending patch list prior to add MT7921 SDIO support 3061ff518086 mt76: mt7921s: add reset support 5de5d96f85ed mt76: mt7921: introduce mt7921s support f0571612eebe mt76: mt7921: refactor mt7921_mcu_send_message 689fcdcd2972 mt76: mt7921: rely on mcu_get_nic_capability 861f6162e2e5 mt76: connac: extend mcu_get_nic_capability a28c493784ce mt76: sdio: extend sdio module to support CONNAC2 972627da893a mt76: sdio: move common code in mt76_sdio module fd9ce3e4ead6 mt76: mt7921: use physical addr to unify register access b90b1edd1f01 mt76: mt7921: make all event parser reusable between mt7921s and mt7921e 85361034e054 mt76: mt7663s: rely on mcu reg access utility e9ad71f627da mt76: connac: move mcu reg access utility routines in mt76_connac_lib module f4a4f2080162 mt76: mt7921: add MT7921_COMMON module 29b7682b7659 mt76: mt7921: refactor init.c to be bus independent b597ab756ae0 mt76: mt7921: refactor mcu.c to be bus independent 8c608c4b4569 mt76: mt7921: refactor dma.c to be pcie specific dd9b17ee1198 mt76: mt7921: refactor mac.c to be bus independent 2c3e24c98655 mt76: not accounting the MCU header size in __mt76_mcu_send_firmware for mt7915/21 527fd6d0a36b mt76: introduce __mt76_mcu_send_firmware routine bd16dcf4677d mt76: schedule status timeout at dma completion f9a99765d094 mt76: substitute sk_buff_head status_list with spinlock_t status_lock 7ba08a841137 mt76: remove mt76_wcid pointer from mt76_tx_status_check signature 77a501a1505d mt76: introduce packet_id idr 801aa83b77ef mt76: mt7921: add 6GHz support 672b8f7e615c mt76: add 6GHz support 53da9785a0c2 mt76: connac: enable hw amsdu @ 6GHz d9bcbcb8f6a5 mt76: connac: add 6GHz support to mt76_connac_mcu_uni_add_bss 4c6b738139a1 mt76: connac: add 6GHz support to mt76_connac_mcu_sta_tlv a02b7de86d78 mt76: connac: set 6G phymode in single-sku support 9c0db900b17f mt76: connac: add 6GHz support to mt76_connac_mcu_set_channel_domain 188dea0151a7 mt76: connac: enable 6GHz band for hw scan Lorenzo Bianconi (1): mt76: sdio: move common code in mt76_sdio module Sean Wang (15): mt76: mt7921: refactor mac.c to be bus independent mt76: mt7921: refactor dma.c to be pcie specific mt76: mt7921: refactor mcu.c to be bus independent mt76: mt7921: refactor init.c to be bus independent mt76: mt7921: add MT7921_COMMON module mt76: connac: move mcu reg access utility routines in mt76_connac_lib module mt76: mt7663s: rely on mcu reg access utility mt76: mt7921: make all event parser reusable between mt7921s and mt7921e mt76: mt7921: use physical addr to unify register access mt76: sdio: extend sdio module to support CONNAC2 mt76: connac: extend mcu_get_nic_capability mt76: mt7921: rely on mcu_get_nic_capability mt76: mt7921: refactor mt7921_mcu_send_message mt76: mt7921: introduce mt7921s support mt76: mt7921s: add reset support drivers/net/wireless/mediatek/mt76/Makefile | 2 +- drivers/net/wireless/mediatek/mt76/mt76.h | 22 + .../wireless/mediatek/mt76/mt7615/Makefile | 2 +- .../net/wireless/mediatek/mt76/mt7615/mcu.c | 28 -- .../wireless/mediatek/mt76/mt7615/mt7615.h | 6 - .../net/wireless/mediatek/mt76/mt7615/sdio.c | 282 +------------ .../wireless/mediatek/mt76/mt7615/sdio_mcu.c | 11 +- .../wireless/mediatek/mt76/mt76_connac_mcu.c | 93 +++++ .../wireless/mediatek/mt76/mt76_connac_mcu.h | 2 + .../net/wireless/mediatek/mt76/mt7921/Kconfig | 18 +- .../wireless/mediatek/mt76/mt7921/Makefile | 8 +- .../wireless/mediatek/mt76/mt7921/debugfs.c | 18 +- .../net/wireless/mediatek/mt76/mt7921/dma.c | 38 +- .../wireless/mediatek/mt76/mt7921/eeprom.c | 101 ----- .../net/wireless/mediatek/mt76/mt7921/init.c | 51 +-- .../net/wireless/mediatek/mt76/mt7921/mac.c | 381 ++---------------- .../net/wireless/mediatek/mt76/mt7921/mac.h | 4 + .../net/wireless/mediatek/mt76/mt7921/main.c | 8 + .../net/wireless/mediatek/mt76/mt7921/mcu.c | 135 ++----- .../wireless/mediatek/mt76/mt7921/mt7921.h | 94 ++++- .../net/wireless/mediatek/mt76/mt7921/pci.c | 48 ++- .../wireless/mediatek/mt76/mt7921/pci_mac.c | 354 ++++++++++++++++ .../wireless/mediatek/mt76/mt7921/pci_mcu.c | 115 ++++++ .../net/wireless/mediatek/mt76/mt7921/regs.h | 22 +- .../net/wireless/mediatek/mt76/mt7921/sdio.c | 285 +++++++++++++ .../wireless/mediatek/mt76/mt7921/sdio_mac.c | 220 ++++++++++ .../wireless/mediatek/mt76/mt7921/sdio_mcu.c | 135 +++++++ drivers/net/wireless/mediatek/mt76/sdio.c | 282 +++++++++++++ .../mediatek/mt76/{mt7615 => }/sdio.h | 50 ++- .../mediatek/mt76/{mt7615 => }/sdio_txrx.c | 171 +++++--- 30 files changed, 1987 insertions(+), 999 deletions(-) delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/eeprom.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c create mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c rename drivers/net/wireless/mediatek/mt76/{mt7615 => }/sdio.h (68%) rename drivers/net/wireless/mediatek/mt76/{mt7615 => }/sdio_txrx.c (59%)