mt76: introduce mt792x-lib support
Subsystems (3)
cover mt76: introduce mt792x-lib support
This patch set includes the new module mt792x-lib support.
Move some common header/functions from mt7921 to mt792x and also rename prefix to mt792x. The new module would integrate the common functionalities of mt76 station driver mt7921 and upcoming WiFi7 solution.
(This patch set is too big to review. I will post another series with remaining patches)
Lorenzo Bianconi (16):
wifi: mt76: mt7921: move common register definition in mt792x_regs.h
wifi: mt76: mt7921: convert acpisar and clc pointers to void
wifi: mt76: mt7921: rename mt7921_vif in mt792x_vif
wifi: mt76: mt7921: rename mt7921_sta in mt792x_sta
wifi: mt76: mt7921: rename mt7921_phy in mt792x_phy
wifi: mt76: mt7921: rename mt7921_dev in mt792x_dev
wifi: mt76: mt7921: rename mt7921_hif_ops in mt792x_hif_ops
wifi: mt76: mt792x: move shared structure definition in mt792x.h
wifi: mt76: mt7921: move mt792x_mutex_{acquire/release} in mt792x.h
wifi: mt76: mt7921: move mt792x_hw_dev in mt792x.h
wifi: mt76: mt792x: introduce mt792x-lib module
wifi: mt76: mt7921: move mac shared code in mt792x-lib module
wifi: mt76: mt7921: move dma shared code in mt792x-lib module
wifi: mt76: mt7921: move debugfs shared code in mt792x-lib module
wifi: mt76: mt7921: move init shared code in mt792x-lib module
wifi: mt76: mt792x: introduce mt792x_irq_map
drivers/net/wireless/mediatek/mt76/Kconfig | 4 +
drivers/net/wireless/mediatek/mt76/Makefile | 5 +
.../net/wireless/mediatek/mt76/mt7921/Kconfig | 2 +-
.../wireless/mediatek/mt76/mt7921/Makefile | 4 +-
.../wireless/mediatek/mt76/mt7921/acpi_sar.c | 25 +-
.../wireless/mediatek/mt76/mt7921/debugfs.c | 228 +----
.../net/wireless/mediatek/mt76/mt7921/dma.c | 127 +--
.../net/wireless/mediatek/mt76/mt7921/init.c | 288 +------
.../net/wireless/mediatek/mt76/mt7921/mac.c | 380 +--------
.../net/wireless/mediatek/mt76/mt7921/main.c | 787 ++++-------------
.../net/wireless/mediatek/mt76/mt7921/mcu.c | 120 +--
.../wireless/mediatek/mt76/mt7921/mt7921.h | 297 ++-----
.../net/wireless/mediatek/mt76/mt7921/pci.c | 97 ++-
.../wireless/mediatek/mt76/mt7921/pci_mac.c | 14 +-
.../wireless/mediatek/mt76/mt7921/pci_mcu.c | 12 +-
.../net/wireless/mediatek/mt76/mt7921/regs.h | 464 +---------
.../net/wireless/mediatek/mt76/mt7921/sdio.c | 26 +-
.../wireless/mediatek/mt76/mt7921/sdio_mac.c | 6 +-
.../wireless/mediatek/mt76/mt7921/sdio_mcu.c | 14 +-
.../wireless/mediatek/mt76/mt7921/testmode.c | 8 +-
.../net/wireless/mediatek/mt76/mt7921/trace.c | 12 -
.../net/wireless/mediatek/mt76/mt7921/usb.c | 34 +-
.../wireless/mediatek/mt76/mt7921/usb_mac.c | 16 +-
drivers/net/wireless/mediatek/mt76/mt792x.h | 275 ++++++
.../net/wireless/mediatek/mt76/mt792x_core.c | 792 ++++++++++++++++++
.../wireless/mediatek/mt76/mt792x_debugfs.c | 168 ++++
.../net/wireless/mediatek/mt76/mt792x_mac.c | 313 +++++++
.../net/wireless/mediatek/mt76/mt792x_regs.h | 479 +++++++++++
.../net/wireless/mediatek/mt76/mt792x_trace.c | 14 +
.../{mt7921/mt7921_trace.h => mt792x_trace.h} | 16 +-
30 files changed, 2611 insertions(+), 2416 deletions(-)
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/trace.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_core.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_debugfs.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_regs.h
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_trace.c
rename drivers/net/wireless/mediatek/mt76/{mt7921/mt7921_trace.h => mt792x_trace.h} (68%)Signature · 1 line
2.18.0
PATCH 1/16 wifi: mt76: mt7921: move common register definition in mt792x_regs.h
From: Lorenzo Bianconi <[email protected]>
This is a preliminary patch in order to support new WiFi7 chips.
--- .../net/wireless/mediatek/mt76/mt7921/regs.h | 443 +---------------- .../net/wireless/mediatek/mt76/mt792x_regs.h | 460 ++++++++++++++++++ 2 files changed, 463 insertions(+), 440 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_regs.h
drivers/net/wireless/mediatek/mt76/mt7921/regs.h +3 -440
@@ -4,26 +4,7 @@#ifndef __MT7921_REGS_H#define __MT7921_REGS_H -/* MCU WFDMA1 */ -#define MT_MCU_WFDMA1_BASE 0x3000 -#define MT_MCU_WFDMA1 (ofs) (MT_MCU_WFDMA1_BASE + (ofs)) - -#define MT_MCU_INT_EVENT MT_MCU_WFDMA1(0x108) -#define MT_MCU_INT_EVENT_DMA_STOPPED BIT(0) -#define MT_MCU_INT_EVENT_DMA_INIT BIT(1) -#define MT_MCU_INT_EVENT_SER_TRIGGER BIT(2) -#define MT_MCU_INT_EVENT_RESET_DONE BIT(3) - -#define MT_PLE_BASE 0x820c0000 -#define MT_PLE (ofs) (MT_PLE_BASE + (ofs)) - -#define MT_PLE_FL_Q0_CTRL MT_PLE(0x3e0) -#define MT_PLE_FL_Q1_CTRL MT_PLE(0x3e4) -#define MT_PLE_FL_Q2_CTRL MT_PLE(0x3e8) -#define MT_PLE_FL_Q3_CTRL MT_PLE(0x3ec) - -#define MT_PLE_AC_QEMPTY (_n) MT_PLE(0x500 + 0x40 * (_n)) -#define MT_PLE_AMSDU_PACK_MSDU_CNT (n) MT_PLE(0x10e0 + ((n) << 2)) +#include "../mt792x_regs.h" #define MT_MDP_BASE 0x820cd000#define MT_MDP (ofs) (MT_MDP_BASE + (ofs))
@@ -47,266 +28,6 @@#define MT_MDP_TO_HIF 0#define MT_MDP_TO_WM 1 -/* TMAC: band 0(0x21000), band 1(0xa1000) */ -#define MT_WF_TMAC_BASE (_band) ((_band) ? 0x820f4000 : 0x820e4000) -#define MT_WF_TMAC (_band, ofs) (MT_WF_TMAC_BASE(_band) + (ofs)) - -#define MT_TMAC_TCR0 (_band) MT_WF_TMAC(_band, 0) -#define MT_TMAC_TCR0_TBTT_STOP_CTRL BIT(25) - -#define MT_TMAC_CDTR (_band) MT_WF_TMAC(_band, 0x090) -#define MT_TMAC_ODTR (_band) MT_WF_TMAC(_band, 0x094) -#define MT_TIMEOUT_VAL_PLCP GENMASK(15, 0) -#define MT_TIMEOUT_VAL_CCA GENMASK(31, 16) - -#define MT_TMAC_ICR0 (_band) MT_WF_TMAC(_band, 0x0a4) -#define MT_IFS_EIFS GENMASK(8, 0) -#define MT_IFS_RIFS GENMASK(14, 10) -#define MT_IFS_SIFS GENMASK(22, 16) -#define MT_IFS_SLOT GENMASK(30, 24) - -#define MT_TMAC_CTCR0 (_band) MT_WF_TMAC(_band, 0x0f4) -#define MT_TMAC_CTCR0_INS_DDLMT_REFTIME GENMASK(5, 0) -#define MT_TMAC_CTCR0_INS_DDLMT_EN BIT(17) -#define MT_TMAC_CTCR0_INS_DDLMT_VHT_SMPDU_EN BIT(18) - -#define MT_TMAC_TRCR0 (_band) MT_WF_TMAC(_band, 0x09c) -#define MT_TMAC_TFCR0 (_band) MT_WF_TMAC(_band, 0x1e0) - -#define MT_WF_DMA_BASE (_band) ((_band) ? 0x820f7000 : 0x820e7000) -#define MT_WF_DMA (_band, ofs) (MT_WF_DMA_BASE(_band) + (ofs)) - -#define MT_DMA_DCR0 (_band) MT_WF_DMA(_band, 0x000) -#define MT_DMA_DCR0_MAX_RX_LEN GENMASK(15, 3) -#define MT_DMA_DCR0_RXD_G5_EN BIT(23) - -/* WTBLOFF TOP: band 0(0x820e9000),band 1(0x820f9000) */ -#define MT_WTBLOFF_TOP_BASE (_band) ((_band) ? 0x820f9000 : 0x820e9000) -#define MT_WTBLOFF_TOP (_band, ofs) (MT_WTBLOFF_TOP_BASE(_band) + (ofs)) - -#define MT_WTBLOFF_TOP_RSCR (_band) MT_WTBLOFF_TOP(_band, 0x008) -#define MT_WTBLOFF_TOP_RSCR_RCPI_MODE GENMASK(31, 30) -#define MT_WTBLOFF_TOP_RSCR_RCPI_PARAM GENMASK(25, 24) - -/* LPON: band 0(0x24200), band 1(0xa4200) */ -#define MT_WF_LPON_BASE (_band) ((_band) ? 0x820fb000 : 0x820eb000) -#define MT_WF_LPON (_band, ofs) (MT_WF_LPON_BASE(_band) + (ofs)) - -#define MT_LPON_UTTR0 (_band) MT_WF_LPON(_band, 0x080) -#define MT_LPON_UTTR1 (_band) MT_WF_LPON(_band, 0x084) - -#define MT_LPON_TCR (_band, n) MT_WF_LPON(_band, 0x0a8 + (n) * 4) -#define MT_LPON_TCR_SW_MODE GENMASK(1, 0) -#define MT_LPON_TCR_SW_WRITE BIT(0) - -/* ETBF: band 0(0x24000), band 1(0xa4000) */ -#define MT_WF_ETBF_BASE (_band) ((_band) ? 0x820fa000 : 0x820ea000) -#define MT_WF_ETBF (_band, ofs) (MT_WF_ETBF_BASE(_band) + (ofs)) - -#define MT_ETBF_TX_APP_CNT (_band) MT_WF_ETBF(_band, 0x150) -#define MT_ETBF_TX_IBF_CNT GENMASK(31, 16) -#define MT_ETBF_TX_EBF_CNT GENMASK(15, 0) - -#define MT_ETBF_RX_FB_CNT (_band) MT_WF_ETBF(_band, 0x158) -#define MT_ETBF_RX_FB_ALL GENMASK(31, 24) -#define MT_ETBF_RX_FB_HE GENMASK(23, 16) -#define MT_ETBF_RX_FB_VHT GENMASK(15, 8) -#define MT_ETBF_RX_FB_HT GENMASK(7, 0) - -/* MIB: band 0(0x24800), band 1(0xa4800) */ -#define MT_WF_MIB_BASE (_band) ((_band) ? 0x820fd000 : 0x820ed000) -#define MT_WF_MIB (_band, ofs) (MT_WF_MIB_BASE(_band) + (ofs)) - -#define MT_MIB_SCR1 (_band) MT_WF_MIB(_band, 0x004) -#define MT_MIB_TXDUR_EN BIT(8) -#define MT_MIB_RXDUR_EN BIT(9) - -#define MT_MIB_SDR3 (_band) MT_WF_MIB(_band, 0x698) -#define MT_MIB_SDR3_FCS_ERR_MASK GENMASK(31, 16) - -#define MT_MIB_SDR5 (_band) MT_WF_MIB(_band, 0x780) - -#define MT_MIB_SDR9 (_band) MT_WF_MIB(_band, 0x02c) -#define MT_MIB_SDR9_BUSY_MASK GENMASK(23, 0) - -#define MT_MIB_SDR12 (_band) MT_WF_MIB(_band, 0x558) -#define MT_MIB_SDR14 (_band) MT_WF_MIB(_band, 0x564) -#define MT_MIB_SDR15 (_band) MT_WF_MIB(_band, 0x568) - -#define MT_MIB_SDR16 (_band) MT_WF_MIB(_band, 0x048) -#define MT_MIB_SDR16_BUSY_MASK GENMASK(23, 0) - -#define MT_MIB_SDR22 (_band) MT_WF_MIB(_band, 0x770) -#define MT_MIB_SDR23 (_band) MT_WF_MIB(_band, 0x774) -#define MT_MIB_SDR31 (_band) MT_WF_MIB(_band, 0x55c) - -#define MT_MIB_SDR32 (_band) MT_WF_MIB(_band, 0x7a8) -#define MT_MIB_SDR9_IBF_CNT_MASK GENMASK(31, 16) -#define MT_MIB_SDR9_EBF_CNT_MASK GENMASK(15, 0) - -#define MT_MIB_SDR34 (_band) MT_WF_MIB(_band, 0x090) -#define MT_MIB_MU_BF_TX_CNT GENMASK(15, 0) - -#define MT_MIB_SDR36 (_band) MT_WF_MIB(_band, 0x054) -#define MT_MIB_SDR36_TXTIME_MASK GENMASK(23, 0) -#define MT_MIB_SDR37 (_band) MT_WF_MIB(_band, 0x058) -#define MT_MIB_SDR37_RXTIME_MASK GENMASK(23, 0) - -#define MT_MIB_DR8 (_band) MT_WF_MIB(_band, 0x0c0) -#define MT_MIB_DR9 (_band) MT_WF_MIB(_band, 0x0c4) -#define MT_MIB_DR11 (_band) MT_WF_MIB(_band, 0x0cc) - -#define MT_MIB_MB_SDR0 (_band, n) MT_WF_MIB(_band, 0x100 + ((n) << 4)) -#define MT_MIB_RTS_RETRIES_COUNT_MASK GENMASK(31, 16) - -#define MT_MIB_MB_BSDR0 (_band) MT_WF_MIB(_band, 0x688) -#define MT_MIB_RTS_COUNT_MASK GENMASK(15, 0) -#define MT_MIB_MB_BSDR1 (_band) MT_WF_MIB(_band, 0x690) -#define MT_MIB_RTS_FAIL_COUNT_MASK GENMASK(15, 0) -#define MT_MIB_MB_BSDR2 (_band) MT_WF_MIB(_band, 0x518) -#define MT_MIB_BA_FAIL_COUNT_MASK GENMASK(15, 0) -#define MT_MIB_MB_BSDR3 (_band) MT_WF_MIB(_band, 0x520) -#define MT_MIB_ACK_FAIL_COUNT_MASK GENMASK(15, 0) - -#define MT_MIB_MB_SDR2 (_band, n) MT_WF_MIB(_band, 0x108 + ((n) << 4)) -#define MT_MIB_FRAME_RETRIES_COUNT_MASK GENMASK(15, 0) - -#define MT_TX_AGG_CNT (_band, n) MT_WF_MIB(_band, 0x7dc + ((n) << 2)) -#define MT_TX_AGG_CNT2 (_band, n) MT_WF_MIB(_band, 0x7ec + ((n) << 2)) -#define MT_MIB_ARNG (_band, n) MT_WF_MIB(_band, 0x0b0 + ((n) << 2)) -#define MT_MIB_ARNCR_RANGE (val, n) (((val) >> ((n) << 3)) & GENMASK(7, 0)) - -#define MT_WTBLON_TOP_BASE 0x820d4000 -#define MT_WTBLON_TOP (ofs) (MT_WTBLON_TOP_BASE + (ofs)) -#define MT_WTBLON_TOP_WDUCR MT_WTBLON_TOP(0x200) -#define MT_WTBLON_TOP_WDUCR_GROUP GENMASK(2, 0) - -#define MT_WTBL_UPDATE MT_WTBLON_TOP(0x230) -#define MT_WTBL_UPDATE_WLAN_IDX GENMASK(9, 0) -#define MT_WTBL_UPDATE_ADM_COUNT_CLEAR BIT(12) -#define MT_WTBL_UPDATE_BUSY BIT(31) - -#define MT_WTBL_BASE 0x820d8000 -#define MT_WTBL_LMAC_ID GENMASK(14, 8) -#define MT_WTBL_LMAC_DW GENMASK(7, 2) -#define MT_WTBL_LMAC_OFFS (_id, _dw) (MT_WTBL_BASE | \ - FIELD_PREP(MT_WTBL_LMAC_ID, _id) | \ - FIELD_PREP(MT_WTBL_LMAC_DW, _dw)) - -/* AGG: band 0(0x20800), band 1(0xa0800) */ -#define MT_WF_AGG_BASE (_band) ((_band) ? 0x820f2000 : 0x820e2000) -#define MT_WF_AGG (_band, ofs) (MT_WF_AGG_BASE(_band) + (ofs)) - -#define MT_AGG_AWSCR0 (_band, _n) MT_WF_AGG(_band, 0x05c + (_n) * 4) -#define MT_AGG_PCR0 (_band, _n) MT_WF_AGG(_band, 0x06c + (_n) * 4) -#define MT_AGG_PCR0_MM_PROT BIT(0) -#define MT_AGG_PCR0_GF_PROT BIT(1) -#define MT_AGG_PCR0_BW20_PROT BIT(2) -#define MT_AGG_PCR0_BW40_PROT BIT(4) -#define MT_AGG_PCR0_BW80_PROT BIT(6) -#define MT_AGG_PCR0_ERP_PROT GENMASK(12, 8) -#define MT_AGG_PCR0_VHT_PROT BIT(13) -#define MT_AGG_PCR0_PTA_WIN_DIS BIT(15) - -#define MT_AGG_PCR1_RTS0_NUM_THRES GENMASK(31, 23) -#define MT_AGG_PCR1_RTS0_LEN_THRES GENMASK(19, 0) - -#define MT_AGG_ACR0 (_band) MT_WF_AGG(_band, 0x084) -#define MT_AGG_ACR_CFEND_RATE GENMASK(13, 0) -#define MT_AGG_ACR_BAR_RATE GENMASK(29, 16) - -#define MT_AGG_MRCR (_band) MT_WF_AGG(_band, 0x098) -#define MT_AGG_MRCR_BAR_CNT_LIMIT GENMASK(15, 12) -#define MT_AGG_MRCR_LAST_RTS_CTS_RN BIT(6) -#define MT_AGG_MRCR_RTS_FAIL_LIMIT GENMASK(11, 7) -#define MT_AGG_MRCR_TXCMD_RTS_FAIL_LIMIT GENMASK(28, 24) - -#define MT_AGG_ATCR1 (_band) MT_WF_AGG(_band, 0x0f0) -#define MT_AGG_ATCR3 (_band) MT_WF_AGG(_band, 0x0f4) - -/* ARB: band 0(0x20c00), band 1(0xa0c00) */ -#define MT_WF_ARB_BASE (_band) ((_band) ? 0x820f3000 : 0x820e3000) -#define MT_WF_ARB (_band, ofs) (MT_WF_ARB_BASE(_band) + (ofs)) - -#define MT_ARB_SCR (_band) MT_WF_ARB(_band, 0x080) -#define MT_ARB_SCR_TX_DISABLE BIT(8) -#define MT_ARB_SCR_RX_DISABLE BIT(9) - -#define MT_ARB_DRNGR0 (_band, _n) MT_WF_ARB(_band, 0x194 + (_n) * 4) - -/* RMAC: band 0(0x21400), band 1(0xa1400) */ -#define MT_WF_RMAC_BASE (_band) ((_band) ? 0x820f5000 : 0x820e5000) -#define MT_WF_RMAC (_band, ofs) (MT_WF_RMAC_BASE(_band) + (ofs)) - -#define MT_WF_RFCR (_band) MT_WF_RMAC(_band, 0x000) -#define MT_WF_RFCR_DROP_STBC_MULTI BIT(0) -#define MT_WF_RFCR_DROP_FCSFAIL BIT(1) -#define MT_WF_RFCR_DROP_VERSION BIT(3) -#define MT_WF_RFCR_DROP_PROBEREQ BIT(4) -#define MT_WF_RFCR_DROP_MCAST BIT(5) -#define MT_WF_RFCR_DROP_BCAST BIT(6) -#define MT_WF_RFCR_DROP_MCAST_FILTERED BIT(7) -#define MT_WF_RFCR_DROP_A3_MAC BIT(8) -#define MT_WF_RFCR_DROP_A3_BSSID BIT(9) -#define MT_WF_RFCR_DROP_A2_BSSID BIT(10) -#define MT_WF_RFCR_DROP_OTHER_BEACON BIT(11) -#define MT_WF_RFCR_DROP_FRAME_REPORT BIT(12) -#define MT_WF_RFCR_DROP_CTL_RSV BIT(13) -#define MT_WF_RFCR_DROP_CTS BIT(14) -#define MT_WF_RFCR_DROP_RTS BIT(15) -#define MT_WF_RFCR_DROP_DUPLICATE BIT(16) -#define MT_WF_RFCR_DROP_OTHER_BSS BIT(17) -#define MT_WF_RFCR_DROP_OTHER_UC BIT(18) -#define MT_WF_RFCR_DROP_OTHER_TIM BIT(19) -#define MT_WF_RFCR_DROP_NDPA BIT(20) -#define MT_WF_RFCR_DROP_UNWANTED_CTL BIT(21) - -#define MT_WF_RFCR1 (_band) MT_WF_RMAC(_band, 0x004) -#define MT_WF_RFCR1_DROP_ACK BIT(4) -#define MT_WF_RFCR1_DROP_BF_POLL BIT(5) -#define MT_WF_RFCR1_DROP_BA BIT(6) -#define MT_WF_RFCR1_DROP_CFEND BIT(7) -#define MT_WF_RFCR1_DROP_CFACK BIT(8) - -#define MT_WF_RMAC_MIB_TIME0 (_band) MT_WF_RMAC(_band, 0x03c4) -#define MT_WF_RMAC_MIB_RXTIME_CLR BIT(31) -#define MT_WF_RMAC_MIB_RXTIME_EN BIT(30) - -#define MT_WF_RMAC_MIB_AIRTIME14 (_band) MT_WF_RMAC(_band, 0x03b8) -#define MT_MIB_OBSSTIME_MASK GENMASK(23, 0) -#define MT_WF_RMAC_MIB_AIRTIME0 (_band) MT_WF_RMAC(_band, 0x0380) - -/* WFDMA0 */ -#define MT_WFDMA0_BASE 0xd4000 -#define MT_WFDMA0 (ofs) (MT_WFDMA0_BASE + (ofs)) - -#define MT_WFDMA0_RST MT_WFDMA0(0x100) -#define MT_WFDMA0_RST_LOGIC_RST BIT(4) -#define MT_WFDMA0_RST_DMASHDL_ALL_RST BIT(5) - -#define MT_WFDMA0_BUSY_ENA MT_WFDMA0(0x13c) -#define MT_WFDMA0_BUSY_ENA_TX_FIFO0 BIT(0) -#define MT_WFDMA0_BUSY_ENA_TX_FIFO1 BIT(1) -#define MT_WFDMA0_BUSY_ENA_RX_FIFO BIT(2) - -#define MT_MCU_CMD MT_WFDMA0(0x1f0) -#define MT_MCU_CMD_WAKE_RX_PCIE BIT(0) -#define MT_MCU_CMD_STOP_DMA_FW_RELOAD BIT(1) -#define MT_MCU_CMD_STOP_DMA BIT(2) -#define MT_MCU_CMD_RESET_DONE BIT(3) -#define MT_MCU_CMD_RECOVERY_DONE BIT(4) -#define MT_MCU_CMD_NORMAL_STATE BIT(5) -#define MT_MCU_CMD_ERROR_MASK GENMASK(5, 1) - -#define MT_MCU2HOST_SW_INT_ENA MT_WFDMA0(0x1f4) - -#define MT_WFDMA0_HOST_INT_STA MT_WFDMA0(0x200) -#define HOST_RX_DONE_INT_STS0 BIT(0)/* Rx mcu */ -#define HOST_RX_DONE_INT_STS2 BIT(2)/* Rx data */ -#define HOST_RX_DONE_INT_STS4 BIT(22)/* Rx mcu after fw downloaded */ -#define HOST_TX_DONE_INT_STS16 BIT(26) -#define HOST_TX_DONE_INT_STS17 BIT(27)/* MCU tx done*/ -#define MT_WFDMA0_HOST_INT_ENA MT_WFDMA0(0x204)#define HOST_RX_DONE_INT_ENA0 BIT(0)#define HOST_RX_DONE_INT_ENA1 BIT(1)
@@ -354,56 +75,8 @@ MT_INT_TX_DONE_BAND0 | \ GENMASK(18, 4)) -#define MT_WFDMA0_GLO_CFG MT_WFDMA0(0x208) -#define MT_WFDMA0_GLO_CFG_TX_DMA_EN BIT(0) -#define MT_WFDMA0_GLO_CFG_TX_DMA_BUSY BIT(1) -#define MT_WFDMA0_GLO_CFG_RX_DMA_EN BIT(2) -#define MT_WFDMA0_GLO_CFG_RX_DMA_BUSY BIT(3) -#define MT_WFDMA0_GLO_CFG_TX_WB_DDONE BIT(6) -#define MT_WFDMA0_GLO_CFG_FW_DWLD_BYPASS_DMASHDL BIT(9) -#define MT_WFDMA0_GLO_CFG_FIFO_LITTLE_ENDIAN BIT(12) -#define MT_WFDMA0_GLO_CFG_CSR_DISP_BASE_PTR_CHAIN_EN BIT(15) -#define MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2 BIT(21) -#define MT_WFDMA0_GLO_CFG_OMIT_RX_INFO BIT(27) -#define MT_WFDMA0_GLO_CFG_OMIT_TX_INFO BIT(28) -#define MT_WFDMA0_GLO_CFG_CLK_GAT_DIS BIT(30) - -#define MT_WFDMA0_RST_DTX_PTR MT_WFDMA0(0x20c) -#define MT_WFDMA0_GLO_CFG_EXT0 MT_WFDMA0(0x2b0) -#define MT_WFDMA0_CSR_TX_DMASHDL_ENABLE BIT(6) -#define MT_WFDMA0_PRI_DLY_INT_CFG0 MT_WFDMA0(0x2f0) -#define MT_RX_DATA_RING_BASE MT_WFDMA0(0x520) -#define MT_WFDMA0_TX_RING0_EXT_CTRL MT_WFDMA0(0x600) -#define MT_WFDMA0_TX_RING1_EXT_CTRL MT_WFDMA0(0x604) -#define MT_WFDMA0_TX_RING2_EXT_CTRL MT_WFDMA0(0x608) -#define MT_WFDMA0_TX_RING3_EXT_CTRL MT_WFDMA0(0x60c) -#define MT_WFDMA0_TX_RING4_EXT_CTRL MT_WFDMA0(0x610) -#define MT_WFDMA0_TX_RING5_EXT_CTRL MT_WFDMA0(0x614) -#define MT_WFDMA0_TX_RING6_EXT_CTRL MT_WFDMA0(0x618) -#define MT_WFDMA0_TX_RING16_EXT_CTRL MT_WFDMA0(0x640) -#define MT_WFDMA0_TX_RING17_EXT_CTRL MT_WFDMA0(0x644) - -#define MT_WPDMA0_MAX_CNT_MASK GENMASK(7, 0) -#define MT_WPDMA0_BASE_PTR_MASK GENMASK(31, 16) - -#define MT_WFDMA0_RX_RING0_EXT_CTRL MT_WFDMA0(0x680) -#define MT_WFDMA0_RX_RING1_EXT_CTRL MT_WFDMA0(0x684) -#define MT_WFDMA0_RX_RING2_EXT_CTRL MT_WFDMA0(0x688) -#define MT_WFDMA0_RX_RING3_EXT_CTRL MT_WFDMA0(0x68c) -#define MT_WFDMA0_RX_RING4_EXT_CTRL MT_WFDMA0(0x690) -#define MT_WFDMA0_RX_RING5_EXT_CTRL MT_WFDMA0(0x694) - -#define MT_TX_RING_BASE MT_WFDMA0(0x300) -#define MT_RX_EVENT_RING_BASE MT_WFDMA0(0x500) - -/* WFDMA CSR */ -#define MT_WFDMA_EXT_CSR_BASE 0xd7000 -#define MT_WFDMA_EXT_CSR (ofs) (MT_WFDMA_EXT_CSR_BASE + (ofs)) -#define MT_WFDMA_EXT_CSR_HIF_MISC MT_WFDMA_EXT_CSR(0x44) -#define MT_WFDMA_EXT_CSR_HIF_MISC_BUSY BIT(0) -#define MT_INFRA_CFG_BASE 0xfe000#define MT_INFRA (ofs) (MT_INFRA_CFG_BASE + (ofs))
@@ -413,121 +86,11 @@#define MT_HIF_REMAP_L1_BASE GENMASK(31, 16)#define MT_HIF_REMAP_BASE_L1 0x40000 -#define MT_SWDEF_BASE 0x41f200 -#define MT_SWDEF (ofs) (MT_SWDEF_BASE + (ofs)) -#define MT_SWDEF_MODE MT_SWDEF(0x3c) -#define MT_SWDEF_NORMAL_MODE 0 -#define MT_SWDEF_ICAP_MODE 1 -#define MT_SWDEF_SPECTRUM_MODE 2 - -#define MT_TOP_BASE 0x18060000 -#define MT_TOP (ofs) (MT_TOP_BASE + (ofs)) - -#define MT_TOP_LPCR_HOST_BAND0 MT_TOP(0x10) -#define MT_TOP_LPCR_HOST_FW_OWN BIT(0) -#define MT_TOP_LPCR_HOST_DRV_OWN BIT(1) - -#define MT_TOP_MISC MT_TOP(0xf0) -#define MT_TOP_MISC_FW_STATE GENMASK(2, 0) - -#define MT_MCU_WPDMA0_BASE 0x54000000 -#define MT_MCU_WPDMA0 (ofs) (MT_MCU_WPDMA0_BASE + (ofs)) - -#define MT_WFDMA_DUMMY_CR MT_MCU_WPDMA0(0x120) -#define MT_WFDMA_NEED_REINIT BIT(1) - -#define MT_CBTOP_RGU (ofs) (0x70002000 + (ofs)) -#define MT_CBTOP_RGU_WF_SUBSYS_RST MT_CBTOP_RGU(0x600) -#define MT_CBTOP_RGU_WF_SUBSYS_RST_WF_WHOLE_PATH BIT(0) - -#define MT_HW_BOUND 0x70010020 -#define MT_HW_CHIPID 0x70010200 -#define MT_HW_REV 0x70010204 - -#define MT_PCIE_MAC_BASE 0x10000 -#define MT_PCIE_MAC (ofs) (MT_PCIE_MAC_BASE + (ofs)) -#define MT_PCIE_MAC_INT_ENABLE MT_PCIE_MAC(0x188) -#define MT_PCIE_MAC_PM MT_PCIE_MAC(0x194) -#define MT_PCIE_MAC_PM_L0S_DIS BIT(8) - -#define MT_DMA_SHDL (ofs) (0x7c026000 + (ofs)) -#define MT_DMASHDL_SW_CONTROL MT_DMA_SHDL(0x004) -#define MT_DMASHDL_DMASHDL_BYPASS BIT(28) -#define MT_DMASHDL_OPTIONAL MT_DMA_SHDL(0x008) -#define MT_DMASHDL_PAGE MT_DMA_SHDL(0x00c) -#define MT_DMASHDL_GROUP_SEQ_ORDER BIT(16) -#define MT_DMASHDL_REFILL MT_DMA_SHDL(0x010) -#define MT_DMASHDL_REFILL_MASK GENMASK(31, 16) -#define MT_DMASHDL_PKT_MAX_SIZE MT_DMA_SHDL(0x01c) -#define MT_DMASHDL_PKT_MAX_SIZE_PLE GENMASK(11, 0) -#define MT_DMASHDL_PKT_MAX_SIZE_PSE GENMASK(27, 16) - -#define MT_DMASHDL_GROUP_QUOTA (_n) MT_DMA_SHDL(0x020 + ((_n) << 2)) -#define MT_DMASHDL_GROUP_QUOTA_MIN GENMASK(11, 0) -#define MT_DMASHDL_GROUP_QUOTA_MAX GENMASK(27, 16) - -#define MT_DMASHDL_Q_MAP (_n) MT_DMA_SHDL(0x060 + ((_n) << 2)) -#define MT_DMASHDL_Q_MAP_MASK GENMASK(3, 0) -#define MT_DMASHDL_Q_MAP_SHIFT (_n) (4 * ((_n) % 8)) - -#define MT_DMASHDL_SCHED_SET (_n) MT_DMA_SHDL(0x070 + ((_n) << 2)) - -#define MT_WFDMA_HOST_CONFIG 0x7c027030 -#define MT_WFDMA_HOST_CONFIG_USB_RXEVT_EP4_EN BIT(6) - -#define MT_UMAC (ofs) (0x74000000 + (ofs)) -#define MT_UDMA_TX_QSEL MT_UMAC(0x008) -#define MT_FW_DL_EN BIT(3) - -#define MT_UDMA_WLCFG_1 MT_UMAC(0x00c) -#define MT_WL_RX_AGG_PKT_LMT GENMASK(7, 0) -#define MT_WL_TX_TMOUT_LMT GENMASK(27, 8) - -#define MT_UDMA_WLCFG_0 MT_UMAC(0x18) -#define MT_WL_RX_AGG_TO GENMASK(7, 0) -#define MT_WL_RX_AGG_LMT GENMASK(15, 8) -#define MT_WL_TX_TMOUT_FUNC_EN BIT(16) -#define MT_WL_TX_DPH_CHK_EN BIT(17) -#define MT_WL_RX_MPSZ_PAD0 BIT(18) -#define MT_WL_RX_FLUSH BIT(19) -#define MT_TICK_1US_EN BIT(20) -#define MT_WL_RX_AGG_EN BIT(21) -#define MT_WL_RX_EN BIT(22) -#define MT_WL_TX_EN BIT(23) -#define MT_WL_RX_BUSY BIT(30) -#define MT_WL_TX_BUSY BIT(31) - -#define MT_UDMA_CONN_INFRA_STATUS MT_UMAC(0xa20) -#define MT_UDMA_CONN_WFSYS_INIT_DONE BIT(22) -#define MT_UDMA_CONN_INFRA_STATUS_SEL MT_UMAC(0xa24) - -#define MT_SSUSB_EPCTL_CSR (ofs) (0x74011800 + (ofs)) -#define MT_SSUSB_EPCTL_CSR_EP_RST_OPT MT_SSUSB_EPCTL_CSR(0x090) - -#define MT_UWFDMA0 (ofs) (0x7c024000 + (ofs)) -#define MT_UWFDMA0_GLO_CFG MT_UWFDMA0(0x208) -#define MT_UWFDMA0_GLO_CFG_EXT0 MT_UWFDMA0(0x2b0) -#define MT_UWFDMA0_TX_RING_EXT_CTRL (_n) MT_UWFDMA0(0x600 + ((_n) << 2)) - -#define MT_CONN_STATUS 0x7c053c10 -#define MT_WIFI_PATCH_DL_STATE BIT(0) - -#define MT_CONN_ON_LPCTL 0x7c060010 -#define PCIE_LPCR_HOST_OWN_SYNC BIT(2) -#define PCIE_LPCR_HOST_CLR_OWN BIT(1) -#define PCIE_LPCR_HOST_SET_OWN BIT(0) -#define MT_WFSYS_SW_RST_B 0x18000140#define WFSYS_SW_RST_B BIT(0)#define WFSYS_SW_INIT_DONE BIT(4) -#define MT_CONN_ON_MISC 0x7c0600f0 -#define MT_TOP_MISC2_FW_PWR_ON BIT(0) -#define MT_TOP_MISC2_FW_N9_RDY GENMASK(1, 0) - -#define MT_WF_SW_DEF_CR (ofs) (0x401a00 + (ofs)) -#define MT_WF_SW_DEF_CR_USB_MCU_EVENT MT_WF_SW_DEF_CR(0x028) -#define MT_WF_SW_SER_TRIGGER_SUSPEND BIT(6) -#define MT_WF_SW_SER_DONE_SUSPEND BIT(7) +#define MT_WTBLON_TOP_WDUCR MT_WTBLON_TOP(0x200) +#define MT_WTBLON_TOP_WDUCR_GROUP GENMASK(2, 0)#endif
drivers/net/wireless/mediatek/mt76/mt792x_regs.h new file +460 -0
460 lines not on this page · raw message
Signature · 1 line
2.18.0
PATCH 2/16 wifi: mt76: mt7921: convert acpisar and clc pointers to void
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
Convert acpisar and clc pointers in mt7921_dev structure to void. This is a preliminary patch to add WiFi7 chipset support
--- drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c | 5 +++-- drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 5 ++--- 2 files changed, 5 insertions(+), 5 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c +3 -2
@@ -308,6 +308,7 @@ int mt7921_init_acpi_sar_power(struct mt7921_phy *phy, bool set_default)u8 mt7921_acpi_get_flags (struct mt7921_phy *phy) { +struct mt7921_acpi_sar *acpisar = phy->acpisar;struct mt7921_asar_fg *fg;struct {u8 acpi_idx;
@@ -319,10 +320,10 @@ u8 mt7921_acpi_get_flags(struct mt7921_phy *phy)u8 flags =BIT (0 );int i, j; -if (!phy->acpisar) +if (!acpisar)return 0 ; - fg = phy->acpisar->fg; + fg = acpisar->fg;if (!fg)return flags;
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +2 -3
@@ -222,10 +222,9 @@ struct mt7921_phy {struct sk_buff_head scan_event_list;struct delayed_work scan_work;#ifdef CONFIG_ACPI -struct mt7921_acpi_sar *acpisar; +void *acpisar;#endif - -struct mt7921_clc *clc[MT7921_CLC_MAX_NUM ]; +void *clc[MT7921_CLC_MAX_NUM ];struct work_struct roc_work;struct timer_list roc_timer;
Signature · 1 line
2.18.0
PATCH 3/16 wifi: mt76: mt7921: rename mt7921_vif in mt792x_vif
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- .../net/wireless/mediatek/mt76/mt7921/init.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 4 +- .../net/wireless/mediatek/mt76/mt7921/main.c | 52 +++++++++---------- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 20 +++---- .../wireless/mediatek/mt76/mt7921/mt7921.h | 12 ++--- 5 files changed, 45 insertions(+), 45 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/init.c +1 -1
@@ -141,7 +141,7 @@ mt7921_init_wiphy(struct ieee80211_hw *hw) phy->slottime =9 ; hw->sta_data_size =sizeof (struct mt7921_sta ); - hw->vif_data_size =sizeof (struct mt7921_vif ); + hw->vif_data_size =sizeof (struct mt792x_vif );if (dev->fw_features &MT7921_FW_CAP_CNM ) { wiphy->flags |=WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL ;
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +2 -2
@@ -204,7 +204,7 @@ mt7921_mac_rssi_iter(void *priv, u8 *mac, struct ieee80211_vif *vif) {struct sk_buff *skb = priv;struct mt76_rx_status *status = (struct mt76_rx_status *)skb->cb; -struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; +struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;struct ieee80211_hdr *hdr =mt76_skb_get_hdr (skb);if (status->signal >0 )
@@ -819,7 +819,7 @@ static voidmt7921_vif_connect_iter (void *priv, u8 *mac, struct ieee80211_vif *vif) { -struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; +struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;struct mt7921_dev *dev = mvif->phy->dev;struct ieee80211_hw *hw =mt76_hw (dev);
drivers/net/wireless/mediatek/mt76/mt7921/main.c +26 -26
203 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +10 -10
@@ -96,7 +96,7 @@ static int mt7921_mcu_set_ipv6_ns_filter(struct mt76_dev *dev, struct ieee80211_vif *vif, bool suspend) { - struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; + struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; struct { struct { u8 bss_idx;
@@ -543,7 +543,7 @@ EXPORT_SYMBOL_GPL(mt7921_run_firmware);int mt7921_mcu_set_tx (struct mt7921_dev *dev,struct ieee80211_vif *vif) { -struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; +struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;struct edca {__le16 cw_min;__le16 cw_max;
@@ -635,7 +635,7 @@ int mt7921_mcu_set_tx(struct mt7921_dev *dev, struct ieee80211_vif *vif) &req_mu, sizeof(req_mu), false); } -int mt7921_mcu_set_roc (struct mt7921_phy *phy,struct mt7921_vif *vif, +int mt7921_mcu_set_roc (struct mt7921_phy *phy,struct mt792x_vif *vif,struct ieee80211_channel *chan,int duration,enum mt7921_roc_req type,u8 token_id) {
@@ -702,7 +702,7 @@ int mt7921_mcu_set_roc(struct mt7921_phy *phy, struct mt7921_vif *vif, &req, sizeof(req), false); } -int mt7921_mcu_abort_roc (struct mt7921_phy *phy,struct mt7921_vif *vif, +int mt7921_mcu_abort_roc (struct mt7921_phy *phy,struct mt792x_vif *vif,u8 token_id) {struct mt7921_dev *dev = phy->dev;
@@ -809,7 +809,7 @@ EXPORT_SYMBOL_GPL(mt7921_mcu_set_eeprom); int mt7921_mcu_uni_bss_ps(struct mt7921_dev *dev, struct ieee80211_vif *vif) { - struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; + struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; struct { struct { u8 bss_idx;
@@ -848,7 +848,7 @@ static int mt7921_mcu_uni_bss_bcnft(struct mt7921_dev *dev, struct ieee80211_vif *vif, bool enable) { - struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; + struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; struct { struct { u8 bss_idx;
@@ -884,7 +884,7 @@ int mt7921_mcu_set_bss_pm(struct mt7921_dev *dev, struct ieee80211_vif *vif, bool enable) { - struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; + struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; struct { u8 bss_idx; u8 dtim_period;
@@ -922,7 +922,7 @@ int mt7921_mcu_sta_update(struct mt7921_dev *dev, struct ieee80211_sta *sta, struct ieee80211_vif *vif, bool enable, enum mt76_sta_info_state state) { - struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; + struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;int rssi = -ewma_rssi_read (&mvif->rssi); struct mt76_sta_cmd_info info = { .sta = sta,
@@ -1074,7 +1074,7 @@ int mt7921_mcu_set_sniffer(struct mt7921_dev *dev, struct ieee80211_vif *vif, true); } -int mt7921_mcu_config_sniffer (struct mt7921_vif *vif, +int mt7921_mcu_config_sniffer (struct mt792x_vif *vif,struct ieee80211_chanctx_conf *ctx) {struct cfg80211_chan_def *chandef = &ctx->def;
@@ -1148,7 +1148,7 @@ mt7921_mcu_uni_add_beacon_offload(struct mt7921_dev *dev, struct ieee80211_vif *vif, bool enable) { -struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; +struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;struct mt76_wcid *wcid = &dev->mt76.global_wcid;struct ieee80211_mutable_offsets offs;struct {
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +6 -6
@@ -127,7 +127,7 @@ struct mt7921_sdio_intr {#define to_rssi (field, rxv) ((FIELD_GET(field, rxv) - 220) / 2)#define to_rcpi (rssi) (2 * (rssi) + 220) -struct mt7921_vif ; +struct mt792x_vif ;struct mt7921_sta ;enum mt7921_txq_id {
@@ -148,7 +148,7 @@ DECLARE_EWMA(avg_signal, 10, 8)struct mt7921_sta {struct mt76_wcid wcid;/* must be first */ -struct mt7921_vif *vif; +struct mt792x_vif *vif;u32 airtime_ac[8 ];
@@ -162,7 +162,7 @@ struct mt7921_sta {DECLARE_EWMA (rssi,10 ,8 ); -struct mt7921_vif { +struct mt792x_vif {struct mt76_vif mt76;/* must be first */ struct mt7921_sta sta;
@@ -497,7 +497,7 @@ void mt7921_set_ipv6_ns_work(struct work_struct *work);int mt7921_mcu_set_sniffer (struct mt7921_dev *dev,struct ieee80211_vif *vif,bool enable); -int mt7921_mcu_config_sniffer (struct mt7921_vif *vif, +int mt7921_mcu_config_sniffer (struct mt792x_vif *vif,struct ieee80211_chanctx_conf *ctx);int mt7921_mcu_get_temperature (struct mt7921_phy *phy);
@@ -550,10 +550,10 @@ int mt7921_set_tx_sar_pwr(struct ieee80211_hw *hw,int mt7921_mcu_set_clc (struct mt7921_dev *dev,u8 *alpha2,enum environment_cap env_cap); -int mt7921_mcu_set_roc (struct mt7921_phy *phy,struct mt7921_vif *vif, +int mt7921_mcu_set_roc (struct mt7921_phy *phy,struct mt792x_vif *vif,struct ieee80211_channel *chan,int duration,enum mt7921_roc_req type,u8 token_id); -int mt7921_mcu_abort_roc (struct mt7921_phy *phy,struct mt7921_vif *vif, +int mt7921_mcu_abort_roc (struct mt7921_phy *phy,struct mt792x_vif *vif,u8 token_id);struct ieee80211_ops *mt7921_get_mac80211_ops (struct device *dev,void *drv_data,u8 *fw_features);
Signature · 1 line
2.18.0
PATCH 4/16 wifi: mt76: mt7921: rename mt7921_sta in mt792x_sta
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- .../net/wireless/mediatek/mt76/mt7921/init.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 22 +++++++++---------- .../net/wireless/mediatek/mt76/mt7921/main.c | 22 +++++++++---------- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 8 +++---- .../wireless/mediatek/mt76/mt7921/mt7921.h | 8 +++---- .../wireless/mediatek/mt76/mt7921/pci_mac.c | 2 +- 6 files changed, 32 insertions(+), 32 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/init.c +1 -1
@@ -140,7 +140,7 @@ mt7921_init_wiphy(struct ieee80211_hw *hw) phy->slottime =9 ; - hw->sta_data_size =sizeof (struct mt7921_sta ); + hw->sta_data_size =sizeof (struct mt792x_sta ); hw->vif_data_size =sizeof (struct mt792x_vif );if (dev->fw_features &MT7921_FW_CAP_CNM ) {
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +11 -11
@@ -23,7 +23,7 @@ static u32 mt7921_mac_wtbl_lmac_addr(int idx, u8 offset)static struct mt76_wcid *mt7921_rx_get_wcid (struct mt7921_dev *dev,u16 idx,bool unicast) { -struct mt7921_sta *sta; +struct mt792x_sta *sta;struct mt76_wcid *wcid;if (idx >=ARRAY_SIZE (dev->mt76.wcid))
@@ -36,7 +36,7 @@ static struct mt76_wcid *mt7921_rx_get_wcid(struct mt7921_dev *dev,if (!wcid->sta)return NULL ; - sta = container_of(wcid, struct mt7921_sta, wcid); + sta = container_of(wcid, struct mt792x_sta, wcid);if (!sta->vif)return NULL ;
@@ -61,7 +61,7 @@ static void mt7921_mac_sta_poll(struct mt7921_dev *dev) [IEEE80211_AC_VO] = 6 };struct ieee80211_sta *sta; -struct mt7921_sta *msta; +struct mt792x_sta *msta;u32 tx_time[IEEE80211_NUM_ACS ], rx_time[IEEE80211_NUM_ACS ];LIST_HEAD (sta_poll_list);struct rate_info *rate;
@@ -84,7 +84,7 @@ static void mt7921_mac_sta_poll(struct mt7921_dev *dev)break ; } msta =list_first_entry (&sta_poll_list, - struct mt7921_sta, wcid.poll_list); + struct mt792x_sta, wcid.poll_list);list_del_init (&msta->wcid.poll_list);spin_unlock_bh (&dev->mt76.sta_poll_lock);
@@ -248,7 +248,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)u32 rxd2 =le32_to_cpu (rxd[2 ]);u32 rxd3 =le32_to_cpu (rxd[3 ]);u32 rxd4 =le32_to_cpu (rxd[4 ]); -struct mt7921_sta *msta =NULL ; +struct mt792x_sta *msta =NULL ;u16 seq_ctrl =0 ;__le16 fc =0 ;u8 mode =0 ;
@@ -279,7 +279,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb) status->wcid =mt7921_rx_get_wcid (dev, idx, unicast);if (status->wcid) { - msta = container_of(status->wcid, struct mt7921_sta, wcid); + msta = container_of(status->wcid, struct mt792x_sta, wcid);spin_lock_bh (&dev->mt76.sta_poll_lock);if (list_empty (&msta->wcid.poll_list)) list_add_tail(&msta->wcid.poll_list,
@@ -513,7 +513,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)void mt7921_mac_add_txs (struct mt7921_dev *dev,void *data) { -struct mt7921_sta *msta =NULL ; +struct mt792x_sta *msta =NULL ;struct mt76_wcid *wcid;__le32 *txs_data = data;u16 wcidx;
@@ -537,7 +537,7 @@ void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data)if (!wcid) goto out; - msta = container_of(wcid, struct mt7921_sta, wcid); + msta = container_of(wcid, struct mt792x_sta, wcid);mt76_connac2_mac_add_txs_skb (&dev->mt76, wcid, pid, txs_data);if (!wcid->sta)
@@ -582,7 +582,7 @@ static void mt7921_mac_tx_free(struct mt7921_dev *dev, void *data, int len)* 1'b0: msdu_id with the same 'wcid pair' as above. */ if (info &MT_TX_FREE_PAIR ) { -struct mt7921_sta *msta; +struct mt792x_sta *msta;u16 idx; count++;
@@ -592,7 +592,7 @@ static void mt7921_mac_tx_free(struct mt7921_dev *dev, void *data, int len)if (!sta)continue ; - msta = container_of(wcid, struct mt7921_sta, wcid); + msta = container_of(wcid, struct mt792x_sta, wcid);spin_lock_bh (&mdev->sta_poll_lock);if (list_empty (&msta->wcid.poll_list)) list_add_tail(&msta->wcid.poll_list,
@@ -1140,7 +1140,7 @@ int mt7921_usb_sdio_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, wcid = &dev->mt76.global_wcid;if (sta) { -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;if (time_after (jiffies, msta->last_txs +HZ /4 )) { info->flags |=IEEE80211_TX_CTL_REQ_TX_STATUS ;
drivers/net/wireless/mediatek/mt76/mt7921/main.c +11 -11
@@ -342,7 +342,7 @@ static void mt7921_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) {struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; -struct mt7921_sta *msta = &mvif->sta; +struct mt792x_sta *msta = &mvif->sta;struct mt7921_dev *dev =mt7921_hw_dev (hw);struct mt7921_phy *phy =mt7921_hw_phy (hw);int idx = msta->wcid.idx;
@@ -508,7 +508,7 @@ static int mt7921_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, {struct mt7921_dev *dev =mt7921_hw_dev (hw);struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv; -struct mt7921_sta *msta = sta ? (struct mt7921_sta *)sta->drv_priv : +struct mt792x_sta *msta = sta ? (struct mt792x_sta *)sta->drv_priv : &mvif->sta;struct mt76_wcid *wcid = &msta->wcid;u8 *wcid_keyidx = &wcid->hw_key_idx;
@@ -756,7 +756,7 @@ int mt7921_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;int ret, idx;
@@ -797,7 +797,7 @@ void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;mt7921_mutex_acquire (dev);
@@ -822,7 +822,7 @@ void mt7921_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;mt76_connac_free_pending_tx_skbs (&dev->pm, &msta->wcid);mt76_connac_pm_wake (&dev->mphy, &dev->pm);
@@ -877,9 +877,9 @@ static void mt7921_tx(struct ieee80211_hw *hw,int qid;if (control->sta) { -struct mt7921_sta *sta; +struct mt792x_sta *sta; - sta = (struct mt7921_sta *)control->sta->drv_priv; + sta = (struct mt792x_sta *)control->sta->drv_priv; wcid = &sta->wcid; }
@@ -924,7 +924,7 @@ mt7921_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,struct mt7921_dev *dev =mt7921_hw_dev (hw);struct ieee80211_sta *sta = params->sta;struct ieee80211_txq *txq = sta->txq[params->tid]; -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;u16 tid = params->tid;u16 ssn = params->ssn;struct mt76_txq *mtxq;
@@ -1120,7 +1120,7 @@ mt7921_get_et_sset_count(struct ieee80211_hw *hw, struct ieee80211_vif *vif,static void mt7921_ethtool_worker (void *wi_data,struct ieee80211_sta *sta) { -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;struct mt76_ethtool_worker_info *wi = wi_data;if (msta->vif->mt76.idx != wi->idx)
@@ -1387,7 +1387,7 @@ static void mt7921_sta_statistics(struct ieee80211_hw *hw,struct ieee80211_sta *sta, struct station_info *sinfo) { - struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; + struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;struct rate_info *txrate = &msta->wcid.rate;if (!txrate->legacy && !txrate->flags)
@@ -1500,7 +1500,7 @@ static void mt7921_sta_set_decap_offload(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool enabled) { -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;struct mt7921_dev *dev =mt7921_hw_dev (hw);mt7921_mutex_acquire (dev);
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +4 -4
@@ -343,7 +343,7 @@ int mt7921_mcu_uni_tx_ba(struct mt7921_dev *dev, struct ieee80211_ampdu_params *params, bool enable) { -struct mt7921_sta *msta = (struct mt7921_sta *)params->sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)params->sta->drv_priv;if (enable && !params->amsdu) msta->wcid.amsdu = false;
@@ -357,7 +357,7 @@ int mt7921_mcu_uni_rx_ba(struct mt7921_dev *dev, struct ieee80211_ampdu_params *params, bool enable) { -struct mt7921_sta *msta = (struct mt7921_sta *)params->sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)params->sta->drv_priv; return mt76_connac_mcu_sta_ba(&dev->mt76, &msta->vif->mt76, params, MCU_UNI_CMD(STA_REC_UPDATE),
@@ -933,9 +933,9 @@ int mt7921_mcu_sta_update(struct mt7921_dev *dev, struct ieee80211_sta *sta, .offload_fw = true, .rcpi = to_rcpi(rssi), }; -struct mt7921_sta *msta; +struct mt792x_sta *msta; - msta = sta ? (struct mt7921_sta *)sta->drv_priv :NULL ; + msta = sta ? (struct mt792x_sta *)sta->drv_priv :NULL ; info.wcid = msta ? &msta->wcid : &mvif->sta.wcid; info.newly = msta ? state !=MT76_STA_INFO_STATE_ASSOC : true;
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +4 -4
@@ -128,7 +128,7 @@ struct mt7921_sdio_intr {#define to_rcpi (rssi) (2 * (rssi) + 220)struct mt792x_vif ; -struct mt7921_sta ; +struct mt792x_sta ;enum mt7921_txq_id {MT7921_TXQ_BAND0 ,
@@ -145,7 +145,7 @@ enum mt7921_rxq_id { DECLARE_EWMA(avg_signal, 10, 8) -struct mt7921_sta { +struct mt792x_sta {struct mt76_wcid wcid;/* must be first */ struct mt792x_vif *vif;
@@ -165,8 +165,8 @@ DECLARE_EWMA(rssi, 10, 8);struct mt792x_vif {struct mt76_vif mt76;/* must be first */ -struct mt7921_sta sta; -struct mt7921_sta *wep_sta; +struct mt792x_sta sta; +struct mt792x_sta *wep_sta;struct mt7921_phy *phy;
drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +1 -1
@@ -32,7 +32,7 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,return id;if (sta) { -struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; +struct mt792x_sta *msta = (struct mt792x_sta *)sta->drv_priv;if (time_after (jiffies, msta->last_txs +HZ /4 )) { info->flags |=IEEE80211_TX_CTL_REQ_TX_STATUS ;
Signature · 1 line
2.18.0
PATCH 5/16 wifi: mt76: mt7921: rename mt7921_phy in mt792x_phy
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- .../wireless/mediatek/mt76/mt7921/acpi_sar.c | 8 +-- .../wireless/mediatek/mt76/mt7921/debugfs.c | 4 +- .../net/wireless/mediatek/mt76/mt7921/init.c | 6 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 14 ++--- .../net/wireless/mediatek/mt76/mt7921/main.c | 58 +++++++++---------- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 14 ++--- .../wireless/mediatek/mt76/mt7921/mt7921.h | 36 ++++++------ .../wireless/mediatek/mt76/mt7921/testmode.c | 4 +- 8 files changed, 72 insertions(+), 72 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c +4 -4
@@ -193,7 +193,7 @@ int mt7921_init_acpi_sar(struct mt7921_dev *dev) }static s8 -mt7921_asar_get_geo_pwr (struct mt7921_phy *phy, +mt7921_asar_get_geo_pwr (struct mt792x_phy *phy,enum nl80211_band band,s8 dyn_power) {struct mt7921_acpi_sar *asar = phy->acpisar;
@@ -248,7 +248,7 @@ mt7921_asar_get_geo_pwr(struct mt7921_phy *phy, }static s8 -mt7921_asar_range_pwr (struct mt7921_phy *phy, +mt7921_asar_range_pwr (struct mt792x_phy *phy,const struct cfg80211_sar_freq_ranges *range,u8 idx) {
@@ -280,7 +280,7 @@ mt7921_asar_range_pwr(struct mt7921_phy *phy,return mt7921_asar_get_geo_pwr (phy, band, limit[idx]); } -int mt7921_init_acpi_sar_power (struct mt7921_phy *phy,bool set_default) +int mt7921_init_acpi_sar_power (struct mt792x_phy *phy,bool set_default) {const struct cfg80211_sar_capa *capa = phy->mt76->hw->wiphy->sar_capa;int i;
@@ -306,7 +306,7 @@ int mt7921_init_acpi_sar_power(struct mt7921_phy *phy, bool set_default)return 0 ; } -u8 mt7921_acpi_get_flags (struct mt7921_phy *phy) +u8 mt7921_acpi_get_flags (struct mt792x_phy *phy) {struct mt7921_acpi_sar *acpisar = phy->acpisar;struct mt7921_asar_fg *fg;
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +2 -2
@@ -58,7 +58,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug, mt7921_fw_debug_get, mt7921_fw_debug_set, "%lld\n");static void -mt7921_ampdu_stat_read_phy (struct mt7921_phy *phy, +mt7921_ampdu_stat_read_phy (struct mt792x_phy *phy,struct seq_file *file) {struct mt7921_dev *dev = file->private;
@@ -94,7 +94,7 @@ static int mt7921_tx_stats_show(struct seq_file *file, void *data) { struct mt7921_dev *dev = file->private; -struct mt7921_phy *phy = &dev->phy; +struct mt792x_phy *phy = &dev->phy;struct mt76_mib_stats *mib = &phy->mib;int i;
drivers/net/wireless/mediatek/mt76/mt7921/init.c +3 -3
@@ -60,7 +60,7 @@ static ssize_t mt7921_thermal_temp_show(struct device *dev, {switch (to_sensor_dev_attr (attr)->index) {case 0 : { -struct mt7921_phy *phy =dev_get_drvdata (dev); +struct mt792x_phy *phy =dev_get_drvdata (dev);struct mt7921_dev *mdev = phy->dev;int temperature;
@@ -85,7 +85,7 @@ static struct attribute *mt7921_hwmon_attrs[] = { };ATTRIBUTE_GROUPS (mt7921_hwmon); -static int mt7921_thermal_init (struct mt7921_phy *phy) +static int mt7921_thermal_init (struct mt792x_phy *phy) {struct wiphy *wiphy = phy->mt76->hw->wiphy;struct device *hwmon;
@@ -126,7 +126,7 @@ mt7921_regd_notifier(struct wiphy *wiphy,static int mt7921_init_wiphy (struct ieee80211_hw *hw) { -struct mt7921_phy *phy =mt7921_hw_phy (hw); +struct mt792x_phy *phy =mt7921_hw_phy (hw);struct mt7921_dev *dev = phy->dev;struct wiphy *wiphy = hw->wiphy;
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +7 -7
@@ -240,7 +240,7 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)u16 hdr_gap;__le32 *rxv =NULL , *rxd = (__le32 *)skb->data;struct mt76_phy *mphy = &dev->mt76.phy; -struct mt7921_phy *phy = &dev->phy; +struct mt792x_phy *phy = &dev->phy;struct ieee80211_supported_band *sband;u32 csum_status = *(u32 *)skb->cb;u32 rxd0 =le32_to_cpu (rxd[0 ]);
@@ -699,7 +699,7 @@ void mt7921_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q, }EXPORT_SYMBOL_GPL (mt7921_queue_rx_skb); -void mt7921_mac_reset_counters (struct mt7921_phy *phy) +void mt7921_mac_reset_counters (struct mt792x_phy *phy) {struct mt7921_dev *dev = phy->dev;int i;
@@ -721,7 +721,7 @@ void mt7921_mac_reset_counters(struct mt7921_phy *phy)mt76_set (dev,MT_WF_RMAC_MIB_AIRTIME0 (0 ),MT_WF_RMAC_MIB_RXTIME_CLR ); } -void mt7921_mac_set_timing (struct mt7921_phy *phy) +void mt7921_mac_set_timing (struct mt792x_phy *phy) {s16 coverage_class = phy->coverage_class;struct mt7921_dev *dev = phy->dev;
@@ -763,7 +763,7 @@ void mt7921_mac_set_timing(struct mt7921_phy *phy) }static u8 -mt7921_phy_get_nf (struct mt7921_phy *phy,int idx) +mt7921_phy_get_nf (struct mt792x_phy *phy,int idx) {return 0 ; }
@@ -772,7 +772,7 @@ static void mt7921_phy_update_channel(struct mt76_phy *mphy, int idx) { struct mt7921_dev *dev = container_of(mphy->dev, struct mt7921_dev, mt76); -struct mt7921_phy *phy = (struct mt7921_phy *)mphy->priv; +struct mt792x_phy *phy = (struct mt792x_phy *)mphy->priv;struct mt76_channel_state *state;u64 busy_time, tx_time, rx_time, obss_time;int nf;
@@ -902,7 +902,7 @@ void mt7921_reset(struct mt76_dev *mdev) }EXPORT_SYMBOL_GPL (mt7921_reset); -void mt7921_mac_update_mib_stats (struct mt7921_phy *phy) +void mt7921_mac_update_mib_stats (struct mt792x_phy *phy) {struct mt76_mib_stats *mib = &phy->mib;struct mt7921_dev *dev = phy->dev;
@@ -964,7 +964,7 @@ void mt7921_mac_update_mib_stats(struct mt7921_phy *phy)void mt7921_mac_work (struct work_struct *work) { -struct mt7921_phy *phy; +struct mt792x_phy *phy;struct mt76_phy *mphy; mphy = (struct mt76_phy *)container_of(work, struct mt76_phy,
drivers/net/wireless/mediatek/mt76/mt7921/main.c +29 -29
218 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +7 -7
@@ -160,7 +160,7 @@ static void mt7921_mcu_scan_event(struct mt7921_dev *dev, struct sk_buff *skb) { struct mt76_phy *mphy = &dev->mt76.phy; -struct mt7921_phy *phy = (struct mt7921_phy *)mphy->priv; +struct mt792x_phy *phy = (struct mt792x_phy *)mphy->priv;spin_lock_bh (&dev->mt76.lock);__skb_queue_tail (&phy->scan_event_list, skb);
@@ -394,7 +394,7 @@ static int mt7921_load_clc(struct mt7921_dev *dev, const char *fw_name)const struct mt76_connac2_fw_region *region;const struct mt7921_clc *clc;struct mt76_dev *mdev = &dev->mt76; -struct mt7921_phy *phy = &dev->phy; +struct mt792x_phy *phy = &dev->phy;const struct firmware *fw;int ret, i, len, offset =0 ;u8 *clc_base =NULL , hw_encap =0 ;
@@ -635,7 +635,7 @@ int mt7921_mcu_set_tx(struct mt7921_dev *dev, struct ieee80211_vif *vif) &req_mu, sizeof(req_mu), false); } -int mt7921_mcu_set_roc (struct mt7921_phy *phy,struct mt792x_vif *vif, +int mt7921_mcu_set_roc (struct mt792x_phy *phy,struct mt792x_vif *vif,struct ieee80211_channel *chan,int duration,enum mt7921_roc_req type,u8 token_id) {
@@ -702,7 +702,7 @@ int mt7921_mcu_set_roc(struct mt7921_phy *phy, struct mt792x_vif *vif, &req, sizeof(req), false); } -int mt7921_mcu_abort_roc (struct mt7921_phy *phy,struct mt792x_vif *vif, +int mt7921_mcu_abort_roc (struct mt792x_phy *phy,struct mt792x_vif *vif,u8 token_id) {struct mt7921_dev *dev = phy->dev;
@@ -732,7 +732,7 @@ int mt7921_mcu_abort_roc(struct mt7921_phy *phy, struct mt792x_vif *vif, &req, sizeof(req), false); } -int mt7921_mcu_set_chan_info (struct mt7921_phy *phy,int cmd) +int mt7921_mcu_set_chan_info (struct mt792x_phy *phy,int cmd) {struct mt7921_dev *dev = phy->dev;struct cfg80211_chan_def *chandef = &phy->mt76->chandef;
@@ -1286,7 +1286,7 @@ int __mt7921_mcu_set_clc(struct mt7921_dev *dev, u8 *alpha2,int mt7921_mcu_set_clc (struct mt7921_dev *dev,u8 *alpha2,enum environment_cap env_cap) { -struct mt7921_phy *phy = (struct mt7921_phy *)&dev->phy; +struct mt792x_phy *phy = (struct mt792x_phy *)&dev->phy;int i, ret;/* submit all clc config */
@@ -1305,7 +1305,7 @@ int mt7921_mcu_set_clc(struct mt7921_dev *dev, u8 *alpha2,return 0 ; } -int mt7921_mcu_get_temperature (struct mt7921_phy *phy) +int mt7921_mcu_get_temperature (struct mt792x_phy *phy) {struct mt7921_dev *dev = phy->dev;struct {
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +18 -18
@@ -168,7 +168,7 @@ struct mt792x_vif {struct mt792x_sta sta;struct mt792x_sta *wep_sta; -struct mt7921_phy *phy; +struct mt792x_phy *phy;struct ewma_rssi rssi;
@@ -199,7 +199,7 @@ struct mt7921_clc {u8 data[]; } __packed; -struct mt7921_phy { +struct mt792x_phy {struct mt76_phy *mt76;struct mt7921_dev *dev;
@@ -264,7 +264,7 @@ struct mt7921_dev { };const struct mt76_bus_ops *bus_ops; -struct mt7921_phy phy; +struct mt792x_phy phy;struct work_struct reset_work; bool hw_full_reset:1;
@@ -317,7 +317,7 @@ struct mt7921_txpwr { } data[TXPWR_MAX_NUM ]; }; -static inline struct mt7921_phy * +static inline struct mt792x_phy *mt7921_hw_phy (struct ieee80211_hw *hw) {struct mt76_phy *phy = hw->priv;
@@ -342,7 +342,7 @@ extern const struct ieee80211_ops mt7921_ops;u32 mt7921_reg_map (struct mt7921_dev *dev,u32 addr); -int __mt7921_start (struct mt7921_phy *phy); +int __mt7921_start (struct mt792x_phy *phy);int mt7921_register_device (struct mt7921_dev *dev);void mt7921_unregister_device (struct mt7921_dev *dev);int mt7921_dma_init (struct mt7921_dev *dev);
@@ -355,10 +355,10 @@ int mt7921_mcu_set_bss_pm(struct mt7921_dev *dev, struct ieee80211_vif *vif,int mt7921_mcu_sta_update (struct mt7921_dev *dev,struct ieee80211_sta *sta,struct ieee80211_vif *vif,bool enable,enum mt76_sta_info_state state); -int mt7921_mcu_set_chan_info (struct mt7921_phy *phy,int cmd); +int mt7921_mcu_set_chan_info (struct mt792x_phy *phy,int cmd);int mt7921_mcu_set_tx (struct mt7921_dev *dev,struct ieee80211_vif *vif);int mt7921_mcu_set_eeprom (struct mt7921_dev *dev); -int mt7921_mcu_get_rx_rate (struct mt7921_phy *phy,struct ieee80211_vif *vif, +int mt7921_mcu_get_rx_rate (struct mt792x_phy *phy,struct ieee80211_vif *vif,struct ieee80211_sta *sta,struct rate_info *rate);int mt7921_mcu_fw_log_2_host (struct mt7921_dev *dev,u8 ctrl);void mt7921_mcu_rx_event (struct mt7921_dev *dev,struct sk_buff *skb);
@@ -423,8 +423,8 @@ mt7921_skb_add_usb_sdio_hdr(struct mt7921_dev *dev, struct sk_buff *skb,void mt7921_stop (struct ieee80211_hw *hw);int mt7921_mac_init (struct mt7921_dev *dev);bool mt7921_mac_wtbl_update (struct mt7921_dev *dev,int idx,u32 mask); -void mt7921_mac_reset_counters (struct mt7921_phy *phy); -void mt7921_mac_set_timing (struct mt7921_phy *phy); +void mt7921_mac_reset_counters (struct mt792x_phy *phy); +void mt7921_mac_set_timing (struct mt792x_phy *phy);int mt7921_mac_sta_add (struct mt76_dev *mdev,struct ieee80211_vif *vif,struct ieee80211_sta *sta); void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif,
@@ -433,7 +433,7 @@ void mt7921_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta);void mt7921_mac_work (struct work_struct *work);void mt7921_mac_reset_work (struct work_struct *work); -void mt7921_mac_update_mib_stats (struct mt7921_phy *phy); +void mt7921_mac_update_mib_stats (struct mt792x_phy *phy);void mt7921_reset (struct mt76_dev *mdev); int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, enum mt76_txq_id qid, struct mt76_wcid *wcid,
@@ -445,7 +445,7 @@ bool mt7921_rx_check(struct mt76_dev *mdev, void *data, int len);void mt7921_queue_rx_skb (struct mt76_dev *mdev,enum mt76_rxq_id q,struct sk_buff *skb,u32 *info);void mt7921_stats_work (struct work_struct *work); -void mt7921_set_stream_he_caps (struct mt7921_phy *phy); +void mt7921_set_stream_he_caps (struct mt792x_phy *phy);void mt7921_update_channel (struct mt76_phy *mphy);int mt7921_init_debugfs (struct mt7921_dev *dev);
@@ -499,7 +499,7 @@ int mt7921_mcu_set_sniffer(struct mt7921_dev *dev, struct ieee80211_vif *vif, bool enable);int mt7921_mcu_config_sniffer (struct mt792x_vif *vif,struct ieee80211_chanctx_conf *ctx); -int mt7921_mcu_get_temperature (struct mt7921_phy *phy); +int mt7921_mcu_get_temperature (struct mt792x_phy *phy); int mt7921_usb_sdio_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, enum mt76_txq_id qid, struct mt76_wcid *wcid,
@@ -524,8 +524,8 @@ int mt7921_mcu_uni_add_beacon_offload(struct mt7921_dev *dev, bool enable);#ifdef CONFIG_ACPI int mt7921_init_acpi_sar (struct mt7921_dev *dev); -int mt7921_init_acpi_sar_power (struct mt7921_phy *phy,bool set_default); -u8 mt7921_acpi_get_flags (struct mt7921_phy *phy); +int mt7921_init_acpi_sar_power (struct mt792x_phy *phy,bool set_default); +u8 mt7921_acpi_get_flags (struct mt792x_phy *phy);#else static inline int mt7921_init_acpi_sar (struct mt7921_dev *dev)
@@ -534,13 +534,13 @@ mt7921_init_acpi_sar(struct mt7921_dev *dev) }static inline int -mt7921_init_acpi_sar_power (struct mt7921_phy *phy,bool set_default) +mt7921_init_acpi_sar_power (struct mt792x_phy *phy,bool set_default) {return 0 ; }static inline u8 -mt7921_acpi_get_flags (struct mt7921_phy *phy) +mt7921_acpi_get_flags (struct mt792x_phy *phy) {return 0 ; }
@@ -550,10 +550,10 @@ int mt7921_set_tx_sar_pwr(struct ieee80211_hw *hw,int mt7921_mcu_set_clc (struct mt7921_dev *dev,u8 *alpha2,enum environment_cap env_cap); -int mt7921_mcu_set_roc (struct mt7921_phy *phy,struct mt792x_vif *vif, +int mt7921_mcu_set_roc (struct mt792x_phy *phy,struct mt792x_vif *vif,struct ieee80211_channel *chan,int duration,enum mt7921_roc_req type,u8 token_id); -int mt7921_mcu_abort_roc (struct mt7921_phy *phy,struct mt792x_vif *vif, +int mt7921_mcu_abort_roc (struct mt792x_phy *phy,struct mt792x_vif *vif,u8 token_id);struct ieee80211_ops *mt7921_get_mac80211_ops (struct device *dev,void *drv_data,u8 *fw_features);
drivers/net/wireless/mediatek/mt76/mt7921/testmode.c +2 -2
@@ -113,7 +113,7 @@ int mt7921_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, {struct nlattr *tb[NUM_MT76_TM_ATTRS ];struct mt76_phy *mphy = hw->priv; -struct mt7921_phy *phy = mphy->priv; +struct mt792x_phy *phy = mphy->priv;int err; if (!test_bit(MT76_STATE_RUNNING, &mphy->state) ||
@@ -150,7 +150,7 @@ int mt7921_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *msg, {struct nlattr *tb[NUM_MT76_TM_ATTRS ];struct mt76_phy *mphy = hw->priv; -struct mt7921_phy *phy = mphy->priv; +struct mt792x_phy *phy = mphy->priv;int err; if (!test_bit(MT76_STATE_RUNNING, &mphy->state) ||
Signature · 1 line
2.18.0
PATCH 6/16 wifi: mt76: mt7921: rename mt7921_dev in mt792x_dev
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- .../wireless/mediatek/mt76/mt7921/acpi_sar.c | 12 +- .../wireless/mediatek/mt76/mt7921/debugfs.c | 38 ++--- .../net/wireless/mediatek/mt76/mt7921/dma.c | 26 ++-- .../net/wireless/mediatek/mt76/mt7921/init.c | 20 +-- .../net/wireless/mediatek/mt76/mt7921/mac.c | 58 ++++---- .../net/wireless/mediatek/mt76/mt7921/main.c | 88 ++++++------ .../net/wireless/mediatek/mt76/mt7921/mcu.c | 74 +++++----- .../wireless/mediatek/mt76/mt7921/mt7921.h | 132 +++++++++--------- .../mediatek/mt76/mt7921/mt7921_trace.h | 2 +- .../net/wireless/mediatek/mt76/mt7921/pci.c | 26 ++-- .../wireless/mediatek/mt76/mt7921/pci_mac.c | 4 +- .../wireless/mediatek/mt76/mt7921/pci_mcu.c | 12 +- .../net/wireless/mediatek/mt76/mt7921/sdio.c | 14 +- .../wireless/mediatek/mt76/mt7921/sdio_mac.c | 6 +- .../wireless/mediatek/mt76/mt7921/sdio_mcu.c | 12 +- .../wireless/mediatek/mt76/mt7921/testmode.c | 4 +- .../net/wireless/mediatek/mt76/mt7921/usb.c | 20 +-- .../wireless/mediatek/mt76/mt7921/usb_mac.c | 16 +-- 18 files changed, 282 insertions(+), 282 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c +6 -6
@@ -5,7 +5,7 @@#include "mt7921.h" static int -mt7921_acpi_read (struct mt7921_dev *dev,u8 *method,u8 **tbl,u32 *len) +mt7921_acpi_read (struct mt792x_dev *dev,u8 *method,u8 **tbl,u32 *len) {struct acpi_buffer buf = {ACPI_ALLOCATE_BUFFER ,NULL };union acpi_object *sar_root, *sar_unit;
@@ -65,7 +65,7 @@ mt7921_acpi_read(struct mt7921_dev *dev, u8 *method, u8 **tbl, u32 *len)/* MTCL : Country List Table for 6G band */ static int -mt7921_asar_acpi_read_mtcl (struct mt7921_dev *dev,u8 **table,u8 *version) +mt7921_asar_acpi_read_mtcl (struct mt792x_dev *dev,u8 **table,u8 *version) { *version = (mt7921_acpi_read (dev,MT7921_ACPI_MTCL , table,NULL ) <0 ) ?1 :2 ;
@@ -74,7 +74,7 @@ mt7921_asar_acpi_read_mtcl(struct mt7921_dev *dev, u8 **table, u8 *version)/* MTDS : Dynamic SAR Power Table */ static int -mt7921_asar_acpi_read_mtds (struct mt7921_dev *dev,u8 **table,u8 version) +mt7921_asar_acpi_read_mtds (struct mt792x_dev *dev,u8 **table,u8 version) {int len, ret, sarlen, prelen, tblcnt;bool enable;
@@ -109,7 +109,7 @@ mt7921_asar_acpi_read_mtds(struct mt7921_dev *dev, u8 **table, u8 version)/* MTGS : Geo SAR Power Table */ static int -mt7921_asar_acpi_read_mtgs (struct mt7921_dev *dev,u8 **table,u8 version) +mt7921_asar_acpi_read_mtgs (struct mt792x_dev *dev,u8 **table,u8 version) {int len, ret =0 , sarlen, prelen, tblcnt;
@@ -140,7 +140,7 @@ mt7921_asar_acpi_read_mtgs(struct mt7921_dev *dev, u8 **table, u8 version)/* MTFG : Flag Table */ static int -mt7921_asar_acpi_read_mtfg (struct mt7921_dev *dev,u8 **table) +mt7921_asar_acpi_read_mtfg (struct mt792x_dev *dev,u8 **table) {int len, ret;
@@ -154,7 +154,7 @@ mt7921_asar_acpi_read_mtfg(struct mt7921_dev *dev, u8 **table)return ret; } -int mt7921_init_acpi_sar (struct mt7921_dev *dev) +int mt7921_init_acpi_sar (struct mt792x_dev *dev) {struct mt7921_acpi_sar *asar;int ret;
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +19 -19
@@ -6,7 +6,7 @@static int mt7921_reg_set (void *data,u64 val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data;mt7921_mutex_acquire (dev);mt76_wr (dev, dev->mt76.debugfs_reg, val);
@@ -18,7 +18,7 @@ mt7921_reg_set(void *data, u64 val)static int mt7921_reg_get (void *data,u64 *val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data;mt7921_mutex_acquire (dev); *val =mt76_rr (dev, dev->mt76.debugfs_reg);
@@ -32,7 +32,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_regval, mt7921_reg_get, mt7921_reg_set,static int mt7921_fw_debug_set (void *data,u64 val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data;mt7921_mutex_acquire (dev);
@@ -47,7 +47,7 @@ mt7921_fw_debug_set(void *data, u64 val)static int mt7921_fw_debug_get (void *data,u64 *val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data; *val = dev->fw_debug;
@@ -61,7 +61,7 @@ static void mt7921_ampdu_stat_read_phy(struct mt792x_phy *phy, struct seq_file *file) { - struct mt7921_dev *dev = file->private; + struct mt792x_dev *dev = file->private;int bound[15 ], range[4 ], i;if (!phy)
@@ -93,7 +93,7 @@ mt7921_ampdu_stat_read_phy(struct mt792x_phy *phy,static int mt7921_tx_stats_show (struct seq_file *file,void *data) { -struct mt7921_dev *dev = file->private; +struct mt792x_dev *dev = file->private;struct mt792x_phy *phy = &dev->phy;struct mt76_mib_stats *mib = &phy->mib;int i;
@@ -123,7 +123,7 @@ DEFINE_SHOW_ATTRIBUTE(mt7921_tx_stats);static int mt7921_queues_acq (struct seq_file *s,void *data) { -struct mt7921_dev *dev =dev_get_drvdata (s->private); +struct mt792x_dev *dev =dev_get_drvdata (s->private);int i;mt7921_mutex_acquire (dev);
@@ -154,7 +154,7 @@ mt7921_queues_acq(struct seq_file *s, void *data)static int mt7921_queues_read (struct seq_file *s,void *data) { -struct mt7921_dev *dev =dev_get_drvdata (s->private); +struct mt792x_dev *dev =dev_get_drvdata (s->private);struct {struct mt76_queue *q;char *queue;
@@ -211,7 +211,7 @@ mt7921_seq_puts_array(struct seq_file *file, const char *str,static int mt7921_txpwr (struct seq_file *s,void *data) { -struct mt7921_dev *dev =dev_get_drvdata (s->private); +struct mt792x_dev *dev =dev_get_drvdata (s->private);struct mt7921_txpwr txpwr;int ret;
@@ -263,7 +263,7 @@ mt7921_txpwr(struct seq_file *s, void *data)static int mt7921_pm_set (void *data,u64 val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data;struct mt76_connac_pm *pm = &dev->pm;if (mt76_is_usb (&dev->mt76))
@@ -296,7 +296,7 @@ mt7921_pm_set(void *data, u64 val)static int mt7921_pm_get (void *data,u64 *val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data; *val = dev->pm.enable_user;
@@ -308,7 +308,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_pm, mt7921_pm_get, mt7921_pm_set, "%lld\n");static int mt7921_deep_sleep_set (void *data,u64 val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data;struct mt76_connac_pm *pm = &dev->pm;bool monitor = !!(dev->mphy.hw->conf.flags &IEEE80211_CONF_MONITOR );bool enable = !!val;
@@ -332,7 +332,7 @@ mt7921_deep_sleep_set(void *data, u64 val)static int mt7921_deep_sleep_get (void *data,u64 *val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data; *val = dev->pm.ds_enable_user;
@@ -345,7 +345,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_ds, mt7921_deep_sleep_get,static int mt7921_pm_stats (struct seq_file *s,void *data) { -struct mt7921_dev *dev =dev_get_drvdata (s->private); +struct mt792x_dev *dev =dev_get_drvdata (s->private);struct mt76_connac_pm *pm = &dev->pm;unsigned long awake_time = pm->stats.awake_time;
@@ -368,7 +368,7 @@ mt7921_pm_stats(struct seq_file *s, void *data)static int mt7921_pm_idle_timeout_set (void *data,u64 val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data; dev->pm.idle_timeout =msecs_to_jiffies (val);
@@ -378,7 +378,7 @@ mt7921_pm_idle_timeout_set(void *data, u64 val)static int mt7921_pm_idle_timeout_get (void *data,u64 *val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data; *val =jiffies_to_msecs (dev->pm.idle_timeout);
@@ -390,7 +390,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_pm_idle_timeout, mt7921_pm_idle_timeout_get,static int mt7921_chip_reset (void *data,u64 val) { -struct mt7921_dev *dev = data; +struct mt792x_dev *dev = data;int ret =0 ;switch (val) {
@@ -414,7 +414,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_reset, NULL, mt7921_chip_reset, "%lld\n");static int mt7921s_sched_quota_read (struct seq_file *s,void *data) { -struct mt7921_dev *dev =dev_get_drvdata (s->private); +struct mt792x_dev *dev =dev_get_drvdata (s->private);struct mt76_sdio *sdio = &dev->mt76.sdio;seq_printf (s,"pse_data_quota\t%d\n" , sdio->sched.pse_data_quota);
@@ -425,7 +425,7 @@ mt7921s_sched_quota_read(struct seq_file *s, void *data)return 0 ; } -int mt7921_init_debugfs (struct mt7921_dev *dev) +int mt7921_init_debugfs (struct mt792x_dev *dev) {struct dentry *dir;
drivers/net/wireless/mediatek/mt76/mt7921/dma.c +13 -13
@@ -7,9 +7,9 @@static int mt7921_poll_tx (struct napi_struct *napi,int budget) { -struct mt7921_dev *dev; +struct mt792x_dev *dev; - dev = container_of(napi, struct mt7921_dev, mt76.tx_napi); + dev = container_of(napi, struct mt792x_dev, mt76.tx_napi);if (!mt76_connac_pm_ref (&dev->mphy, &dev->pm)) {napi_complete (napi);
@@ -27,10 +27,10 @@ static int mt7921_poll_tx(struct napi_struct *napi, int budget)static int mt7921_poll_rx (struct napi_struct *napi,int budget) { -struct mt7921_dev *dev; +struct mt792x_dev *dev;int done; - dev = container_of(napi->dev, struct mt7921_dev, mt76.napi_dev); + dev = container_of(napi->dev, struct mt792x_dev, mt76.napi_dev);if (!mt76_connac_pm_ref (&dev->mphy, &dev->pm)) {napi_complete (napi);
@@ -43,7 +43,7 @@ static int mt7921_poll_rx(struct napi_struct *napi, int budget)return done; } -static void mt7921_dma_prefetch (struct mt7921_dev *dev) +static void mt7921_dma_prefetch (struct mt792x_dev *dev) {#define PREFETCH (base, depth) ((base) << 16 | (depth))
@@ -64,7 +64,7 @@ static void mt7921_dma_prefetch(struct mt7921_dev *dev)mt76_wr (dev,MT_WFDMA0_TX_RING17_EXT_CTRL ,PREFETCH (0x380 ,0x4 )); } -static int mt7921_dma_disable (struct mt7921_dev *dev,bool force) +static int mt7921_dma_disable (struct mt792x_dev *dev,bool force) {/* disable WFDMA0 */ mt76_clear(dev, MT_WFDMA0_GLO_CFG,
@@ -98,7 +98,7 @@ static int mt7921_dma_disable(struct mt7921_dev *dev, bool force)return 0 ; } -static int mt7921_dma_enable (struct mt7921_dev *dev) +static int mt7921_dma_enable (struct mt792x_dev *dev) {/* configure perfetch settings */ mt7921_dma_prefetch (dev);
@@ -131,7 +131,7 @@ static int mt7921_dma_enable(struct mt7921_dev *dev)return 0 ; } -static int mt7921_dma_reset (struct mt7921_dev *dev,bool force) +static int mt7921_dma_reset (struct mt792x_dev *dev,bool force) {int i, err;
@@ -154,7 +154,7 @@ static int mt7921_dma_reset(struct mt7921_dev *dev, bool force)return mt7921_dma_enable (dev); } -int mt7921_wfsys_reset (struct mt7921_dev *dev) +int mt7921_wfsys_reset (struct mt792x_dev *dev) {mt76_clear (dev,MT_WFSYS_SW_RST_B ,WFSYS_SW_RST_B );msleep (50 );
@@ -167,7 +167,7 @@ int mt7921_wfsys_reset(struct mt7921_dev *dev)return 0 ; } -int mt7921_wpdma_reset (struct mt7921_dev *dev,bool force) +int mt7921_wpdma_reset (struct mt792x_dev *dev,bool force) {int i, err;
@@ -196,7 +196,7 @@ int mt7921_wpdma_reset(struct mt7921_dev *dev, bool force)return 0 ; } -int mt7921_wpdma_reinit_cond (struct mt7921_dev *dev) +int mt7921_wpdma_reinit_cond (struct mt792x_dev *dev) {struct mt76_connac_pm *pm = &dev->pm;int err;
@@ -221,7 +221,7 @@ int mt7921_wpdma_reinit_cond(struct mt7921_dev *dev)return 0 ; } -int mt7921_dma_init (struct mt7921_dev *dev) +int mt7921_dma_init (struct mt792x_dev *dev) {int ret;
@@ -286,7 +286,7 @@ int mt7921_dma_init(struct mt7921_dev *dev)return mt7921_dma_enable (dev); } -void mt7921_dma_cleanup (struct mt7921_dev *dev) +void mt7921_dma_cleanup (struct mt792x_dev *dev) {/* disable */ mt76_clear(dev, MT_WFDMA0_GLO_CFG,
drivers/net/wireless/mediatek/mt76/mt7921/init.c +10 -10
@@ -61,7 +61,7 @@ static ssize_t mt7921_thermal_temp_show(struct device *dev,switch (to_sensor_dev_attr (attr)->index) {case 0 : {struct mt792x_phy *phy =dev_get_drvdata (dev); -struct mt7921_dev *mdev = phy->dev; +struct mt792x_dev *mdev = phy->dev;int temperature;mt7921_mutex_acquire (mdev);
@@ -110,7 +110,7 @@ mt7921_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request) {struct ieee80211_hw *hw =wiphy_to_ieee80211_hw (wiphy); -struct mt7921_dev *dev =mt7921_hw_dev (hw); +struct mt792x_dev *dev =mt7921_hw_dev (hw);memcpy (dev->mt76.alpha2, request->alpha2,sizeof (dev->mt76.alpha2)); dev->mt76.region = request->dfs_region;
@@ -127,7 +127,7 @@ static int mt7921_init_wiphy(struct ieee80211_hw *hw) {struct mt792x_phy *phy =mt7921_hw_phy (hw); -struct mt7921_dev *dev = phy->dev; +struct mt792x_dev *dev = phy->dev;struct wiphy *wiphy = hw->wiphy; hw->queues =4 ;
@@ -200,7 +200,7 @@ mt7921_init_wiphy(struct ieee80211_hw *hw) }static void -mt7921_mac_init_band (struct mt7921_dev *dev,u8 band) +mt7921_mac_init_band (struct mt792x_dev *dev,u8 band) {u32 mask, set;
@@ -309,7 +309,7 @@ mt7921_get_mac80211_ops(struct device *dev, void *drv_data, u8 *fw_features) }EXPORT_SYMBOL_GPL (mt7921_get_mac80211_ops); -int mt7921_mac_init (struct mt7921_dev *dev) +int mt7921_mac_init (struct mt792x_dev *dev) {int i;
@@ -329,7 +329,7 @@ int mt7921_mac_init(struct mt7921_dev *dev) }EXPORT_SYMBOL_GPL (mt7921_mac_init); -static int __mt7921_init_hardware (struct mt7921_dev *dev) +static int __mt7921_init_hardware (struct mt792x_dev *dev) {int ret;
@@ -352,7 +352,7 @@ static int __mt7921_init_hardware(struct mt7921_dev *dev)return ret; } -static int mt7921_init_hardware (struct mt7921_dev *dev) +static int mt7921_init_hardware (struct mt792x_dev *dev) {int ret, i;
@@ -374,7 +374,7 @@ static int mt7921_init_hardware(struct mt7921_dev *dev)return 0 ; } -static int mt7921_init_wcid (struct mt7921_dev *dev) +static int mt7921_init_wcid (struct mt792x_dev *dev) {int idx;
@@ -393,7 +393,7 @@ static int mt7921_init_wcid(struct mt7921_dev *dev)static void mt7921_init_work (struct work_struct *work) { - struct mt7921_dev *dev = container_of(work, struct mt7921_dev, + struct mt792x_dev *dev = container_of(work, struct mt792x_dev, init_work);int ret;
@@ -429,7 +429,7 @@ static void mt7921_init_work(struct work_struct *work)mt76_connac_mcu_set_deep_sleep (&dev->mt76, dev->pm.ds_enable); } -int mt7921_register_device (struct mt7921_dev *dev) +int mt7921_register_device (struct mt792x_dev *dev) {struct ieee80211_hw *hw =mt76_hw (dev);int ret;
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +29 -29
215 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/main.c +44 -44
352 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +37 -37
296 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +66 -66
255 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mt7921_trace.h +1 -1
@@ -21,7 +21,7 @@#define LP_STATE_PR_ARG __entry->lp_state ? "lp ready" : "lp not ready" TRACE_EVENT(lp_event, - TP_PROTO(struct mt7921_dev *dev, u8 lp_state), + TP_PROTO(struct mt792x_dev *dev, u8 lp_state), TP_ARGS(dev, lp_state),
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +13 -13
@@ -41,7 +41,7 @@ mt7921_rx_poll_complete(struct mt76_dev *mdev, enum mt76_rxq_id q)static irqreturn_t mt7921_irq_handler (int irq,void *dev_instance) { -struct mt7921_dev *dev = dev_instance; +struct mt792x_dev *dev = dev_instance;mt76_wr (dev,MT_WFDMA0_HOST_INT_ENA ,0 );
@@ -55,7 +55,7 @@ static irqreturn_t mt7921_irq_handler(int irq, void *dev_instance)static void mt7921_irq_tasklet (unsigned long data) { -struct mt7921_dev *dev = (struct mt7921_dev *)data; +struct mt792x_dev *dev = (struct mt792x_dev *)data;u32 intr, mask =0 ;mt76_wr (dev,MT_WFDMA0_HOST_INT_ENA ,0 );
@@ -97,12 +97,12 @@ static void mt7921_irq_tasklet(unsigned long data)napi_schedule (&dev->mt76.napi[MT_RXQ_MAIN ]); } -static int mt7921e_init_reset (struct mt7921_dev *dev) +static int mt7921e_init_reset (struct mt792x_dev *dev) {return mt7921_wpdma_reset (dev, true); } -static void mt7921e_unregister_device (struct mt7921_dev *dev) +static void mt7921e_unregister_device (struct mt792x_dev *dev) {int i;struct mt76_connac_pm *pm = &dev->pm;
@@ -124,7 +124,7 @@ static void mt7921e_unregister_device(struct mt7921_dev *dev)tasklet_disable (&dev->mt76.irq_tasklet); } -static u32 __mt7921_reg_addr (struct mt7921_dev *dev,u32 addr) +static u32 __mt7921_reg_addr (struct mt792x_dev *dev,u32 addr) {static const struct mt76_connac_reg_map fixed_map[] = { {0x820d0000 ,0x30000 ,0x10000 },/* WF_LMAC_TOP (WF_WTBLON) */
@@ -203,7 +203,7 @@ static u32 __mt7921_reg_addr(struct mt7921_dev *dev, u32 addr)static u32 mt7921_rr (struct mt76_dev *mdev,u32 offset) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);u32 addr =__mt7921_reg_addr (dev, offset);return dev->bus_ops->rr (mdev, addr);
@@ -211,7 +211,7 @@ static u32 mt7921_rr(struct mt76_dev *mdev, u32 offset)static void mt7921_wr (struct mt76_dev *mdev,u32 offset,u32 val) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);u32 addr =__mt7921_reg_addr (dev, offset); dev->bus_ops->wr (mdev, addr, val);
@@ -219,7 +219,7 @@ static void mt7921_wr(struct mt76_dev *mdev, u32 offset, u32 val)static u32 mt7921_rmw (struct mt76_dev *mdev,u32 offset,u32 mask,u32 val) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);u32 addr =__mt7921_reg_addr (dev, offset);return dev->bus_ops->rmw (mdev, addr, mask, val);
@@ -256,7 +256,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev, };struct ieee80211_ops *ops;struct mt76_bus_ops *bus_ops; -struct mt7921_dev *dev; +struct mt792x_dev *dev;struct mt76_dev *mdev;u8 features;int ret;
@@ -303,7 +303,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev,pci_set_drvdata (pdev, mdev); - dev = container_of(mdev, struct mt7921_dev, mt76); + dev = container_of(mdev, struct mt792x_dev, mt76); dev->fw_features = features; dev->hif_ops = &mt7921_pcie_ops;mt76_mmio_init (&dev->mt76,pcim_iomap_table (pdev)[0 ]);
@@ -373,7 +373,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev,static void mt7921_pci_remove (struct pci_dev *pdev) {struct mt76_dev *mdev =pci_get_drvdata (pdev); - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);mt7921e_unregister_device (dev);devm_free_irq (&pdev->dev, pdev->irq, dev);
@@ -385,7 +385,7 @@ static int mt7921_pci_suspend(struct device *device) {struct pci_dev *pdev =to_pci_dev (device);struct mt76_dev *mdev =pci_get_drvdata (pdev); - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);struct mt76_connac_pm *pm = &dev->pm;int i, err;
@@ -459,7 +459,7 @@ static int mt7921_pci_resume(struct device *device) {struct pci_dev *pdev =to_pci_dev (device);struct mt76_dev *mdev =pci_get_drvdata (pdev); - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);struct mt76_connac_pm *pm = &dev->pm;int i, err;
drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +2 -2
@@ -10,7 +10,7 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,struct ieee80211_sta *sta, struct mt76_tx_info *tx_info) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);struct ieee80211_tx_info *info =IEEE80211_SKB_CB (tx_info->skb);struct ieee80211_key_conf *key = info->control.hw_key;struct mt76_connac_hw_txp *txp;
@@ -53,7 +53,7 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,return 0 ; } -int mt7921e_mac_reset (struct mt7921_dev *dev) +int mt7921e_mac_reset (struct mt792x_dev *dev) {int i, err;
drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c +6 -6
@@ -4,7 +4,7 @@#include "mt7921.h" #include "mcu.h" -int mt7921e_driver_own (struct mt7921_dev *dev) +int mt7921e_driver_own (struct mt792x_dev *dev) {u32 reg =mt7921_reg_map_l1 (dev,MT_TOP_LPCR_HOST_BAND0 );
@@ -22,7 +22,7 @@ static int mt7921_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb, int cmd, int *seq) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);enum mt76_mcuq_id txq =MT_MCUQ_WM ;int ret;
@@ -38,7 +38,7 @@ mt7921_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,return mt76_tx_queue_skb_raw (dev, mdev->q_mcu[txq], skb,0 ); } -int mt7921e_mcu_init (struct mt7921_dev *dev) +int mt7921e_mcu_init (struct mt792x_dev *dev) {static const struct mt76_mcu_ops mt7921_mcu_ops = { .headroom =sizeof (struct mt76_connac2_mcu_txd ),
@@ -62,7 +62,7 @@ int mt7921e_mcu_init(struct mt7921_dev *dev)return err; } -int __mt7921e_mcu_drv_pmctrl (struct mt7921_dev *dev) +int __mt7921e_mcu_drv_pmctrl (struct mt792x_dev *dev) {int i, err =0 ;
@@ -81,7 +81,7 @@ int __mt7921e_mcu_drv_pmctrl(struct mt7921_dev *dev)return err; } -int mt7921e_mcu_drv_pmctrl (struct mt7921_dev *dev) +int mt7921e_mcu_drv_pmctrl (struct mt792x_dev *dev) {struct mt76_phy *mphy = &dev->mt76.phy;struct mt76_connac_pm *pm = &dev->pm;
@@ -101,7 +101,7 @@ int mt7921e_mcu_drv_pmctrl(struct mt7921_dev *dev)return err; } -int mt7921e_mcu_fw_pmctrl (struct mt7921_dev *dev) +int mt7921e_mcu_fw_pmctrl (struct mt792x_dev *dev) {struct mt76_phy *mphy = &dev->mt76.phy;struct mt76_connac_pm *pm = &dev->pm;
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c +7 -7
@@ -27,7 +27,7 @@ static void mt7921s_txrx_worker(struct mt76_worker *w) struct mt76_sdio *sdio = container_of(w, struct mt76_sdio, txrx_worker); struct mt76_dev *mdev = container_of(sdio, struct mt76_dev, sdio); - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);if (!mt76_connac_pm_ref (&dev->mphy, &dev->pm)) {queue_work (mdev->wq, &dev->pm.wake_work);
@@ -38,7 +38,7 @@ static void mt7921s_txrx_worker(struct mt76_worker *w)mt76_connac_pm_unref (&dev->mphy, &dev->pm); } -static void mt7921s_unregister_device (struct mt7921_dev *dev) +static void mt7921s_unregister_device (struct mt792x_dev *dev) {struct mt76_connac_pm *pm = &dev->pm;
@@ -122,7 +122,7 @@ static int mt7921s_probe(struct sdio_func *func, .fw_own = mt7921s_mcu_fw_pmctrl, };struct ieee80211_ops *ops; -struct mt7921_dev *dev; +struct mt792x_dev *dev;struct mt76_dev *mdev;u8 features;int ret;
@@ -136,7 +136,7 @@ static int mt7921s_probe(struct sdio_func *func,if (!mdev)return -ENOMEM ; - dev = container_of(mdev, struct mt7921_dev, mt76); + dev = container_of(mdev, struct mt792x_dev, mt76); dev->fw_features = features; dev->hif_ops = &mt7921_sdio_ops;sdio_set_drvdata (func, dev);
@@ -196,7 +196,7 @@ static int mt7921s_probe(struct sdio_func *func,static void mt7921s_remove (struct sdio_func *func) { -struct mt7921_dev *dev =sdio_get_drvdata (func); +struct mt792x_dev *dev =sdio_get_drvdata (func);mt7921s_unregister_device (dev); }
@@ -204,7 +204,7 @@ static void mt7921s_remove(struct sdio_func *func)static int mt7921s_suspend (struct device *__dev) {struct sdio_func *func =dev_to_sdio_func (__dev); -struct mt7921_dev *dev =sdio_get_drvdata (func); +struct mt792x_dev *dev =sdio_get_drvdata (func);struct mt76_connac_pm *pm = &dev->pm;struct mt76_dev *mdev = &dev->mt76;int err;
@@ -277,7 +277,7 @@ static int mt7921s_suspend(struct device *__dev)static int mt7921s_resume (struct device *__dev) {struct sdio_func *func =dev_to_sdio_func (__dev); -struct mt7921_dev *dev =sdio_get_drvdata (func); +struct mt792x_dev *dev =sdio_get_drvdata (func);struct mt76_connac_pm *pm = &dev->pm;struct mt76_dev *mdev = &dev->mt76;int err;
drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c +3 -3
@@ -30,7 +30,7 @@ static u32 mt7921s_read_whcr(struct mt76_dev *dev)return sdio_readl (dev->sdio.func,MCR_WHCR ,NULL ); } -int mt7921s_wfsys_reset (struct mt7921_dev *dev) +int mt7921s_wfsys_reset (struct mt792x_dev *dev) {struct mt76_sdio *sdio = &dev->mt76.sdio;u32 val, status;
@@ -71,7 +71,7 @@ int mt7921s_wfsys_reset(struct mt7921_dev *dev)return 0 ; } -int mt7921s_init_reset (struct mt7921_dev *dev) +int mt7921s_init_reset (struct mt792x_dev *dev) {set_bit (MT76_MCU_RESET , &dev->mphy.state);
@@ -91,7 +91,7 @@ int mt7921s_init_reset(struct mt7921_dev *dev)return 0 ; } -int mt7921s_mac_reset (struct mt7921_dev *dev) +int mt7921s_mac_reset (struct mt792x_dev *dev) {int err;
drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c +6 -6
@@ -16,7 +16,7 @@ static int mt7921s_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb, int cmd, int *seq) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);enum mt7921_sdio_pkt_type type =MT7921_SDIO_CMD ;enum mt76_mcuq_id txq =MT_MCUQ_WM ;int ret, pad;
@@ -51,14 +51,14 @@ mt7921s_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,return ret; } -static u32 mt7921s_read_rm3r (struct mt7921_dev *dev) +static u32 mt7921s_read_rm3r (struct mt792x_dev *dev) {struct mt76_sdio *sdio = &dev->mt76.sdio;return sdio_readl (sdio->func,MCR_D2HRM3R ,NULL ); } -static u32 mt7921s_clear_rm3r_drv_own (struct mt7921_dev *dev) +static u32 mt7921s_clear_rm3r_drv_own (struct mt792x_dev *dev) {struct mt76_sdio *sdio = &dev->mt76.sdio;u32 val;
@@ -71,7 +71,7 @@ static u32 mt7921s_clear_rm3r_drv_own(struct mt7921_dev *dev)return val; } -int mt7921s_mcu_init(struct mt7921_dev *dev) +int mt7921s_mcu_init(struct mt792x_dev *dev) { static const struct mt76_mcu_ops mt7921s_mcu_ops = { .headroom = MT_SDIO_HDR_SIZE +
@@ -97,7 +97,7 @@ int mt7921s_mcu_init(struct mt7921_dev *dev)return 0 ; } -int mt7921s_mcu_drv_pmctrl (struct mt7921_dev *dev) +int mt7921s_mcu_drv_pmctrl (struct mt792x_dev *dev) {struct sdio_func *func = dev->mt76.sdio.func;struct mt76_phy *mphy = &dev->mt76.phy;
@@ -133,7 +133,7 @@ int mt7921s_mcu_drv_pmctrl(struct mt7921_dev *dev)return 0 ; } -int mt7921s_mcu_fw_pmctrl (struct mt7921_dev *dev) +int mt7921s_mcu_fw_pmctrl (struct mt792x_dev *dev) {struct sdio_func *func = dev->mt76.sdio.func;struct mt76_phy *mphy = &dev->mt76.phy;
drivers/net/wireless/mediatek/mt76/mt7921/testmode.c +2 -2
@@ -31,7 +31,7 @@ static const struct nla_policy mt7921_tm_policy[NUM_MT7921_TM_ATTRS] = { };static int -mt7921_tm_set (struct mt7921_dev *dev,struct mt7921_tm_cmd *req) +mt7921_tm_set (struct mt792x_dev *dev,struct mt7921_tm_cmd *req) {struct mt7921_rftest_cmd cmd = { .action = req->action,
@@ -82,7 +82,7 @@ mt7921_tm_set(struct mt7921_dev *dev, struct mt7921_tm_cmd *req) }static int -mt7921_tm_query (struct mt7921_dev *dev,struct mt7921_tm_cmd *req, +mt7921_tm_query (struct mt792x_dev *dev,struct mt7921_tm_cmd *req,struct mt7921_tm_evt *evt_resp) {struct mt7921_rftest_cmd cmd = {
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +10 -10
@@ -82,7 +82,7 @@ static void mt7921u_copy(struct mt76_dev *dev, u32 offset,mutex_unlock (&usb->usb_ctrl_mtx); } -int mt7921u_mcu_power_on (struct mt7921_dev *dev) +int mt7921u_mcu_power_on (struct mt792x_dev *dev) {int ret;
@@ -105,7 +105,7 @@ static int mt7921u_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb, int cmd, int *seq) { - struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76);u32 pad, ep;int ret;
@@ -131,7 +131,7 @@ mt7921u_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,return ret; } -static int mt7921u_mcu_init(struct mt7921_dev *dev) +static int mt7921u_mcu_init(struct mt792x_dev *dev) { static const struct mt76_mcu_ops mcu_ops = { .headroom = MT_SDIO_HDR_SIZE +
@@ -157,13 +157,13 @@ static int mt7921u_mcu_init(struct mt7921_dev *dev)static void mt7921u_stop (struct ieee80211_hw *hw) { -struct mt7921_dev *dev =mt7921_hw_dev (hw); +struct mt792x_dev *dev =mt7921_hw_dev (hw);mt76u_stop_tx (&dev->mt76);mt7921_stop (hw); } -static void mt7921u_cleanup (struct mt7921_dev *dev) +static void mt7921u_cleanup (struct mt792x_dev *dev) {clear_bit (MT76_STATE_INITIALIZED , &dev->mphy.state);mt7921u_wfsys_reset (dev);
@@ -207,7 +207,7 @@ static int mt7921u_probe(struct usb_interface *usb_intf,struct usb_device *udev =interface_to_usbdev (usb_intf);struct ieee80211_ops *ops;struct ieee80211_hw *hw; -struct mt7921_dev *dev; +struct mt792x_dev *dev;struct mt76_dev *mdev;u8 features;int ret;
@@ -222,7 +222,7 @@ static int mt7921u_probe(struct usb_interface *usb_intf,if (!mdev)return -ENOMEM ; - dev = container_of(mdev, struct mt7921_dev, mt76); + dev = container_of(mdev, struct mt792x_dev, mt76); dev->fw_features = features; dev->hif_ops = &hif_ops;
@@ -284,7 +284,7 @@ static int mt7921u_probe(struct usb_interface *usb_intf,static void mt7921u_disconnect (struct usb_interface *usb_intf) { -struct mt7921_dev *dev =usb_get_intfdata (usb_intf); +struct mt792x_dev *dev =usb_get_intfdata (usb_intf);cancel_work_sync (&dev->init_work);if (!test_bit (MT76_STATE_INITIALIZED , &dev->mphy.state))
@@ -302,7 +302,7 @@ static void mt7921u_disconnect(struct usb_interface *usb_intf)#ifdef CONFIG_PM static int mt7921u_suspend (struct usb_interface *intf,pm_message_t state) { -struct mt7921_dev *dev =usb_get_intfdata (intf); +struct mt792x_dev *dev =usb_get_intfdata (intf);struct mt76_connac_pm *pm = &dev->pm;int err;
@@ -329,7 +329,7 @@ static int mt7921u_suspend(struct usb_interface *intf, pm_message_t state)static int mt7921u_resume (struct usb_interface *intf) { -struct mt7921_dev *dev =usb_get_intfdata (intf); +struct mt792x_dev *dev =usb_get_intfdata (intf);struct mt76_connac_pm *pm = &dev->pm;bool reinit = true;int err, i;
drivers/net/wireless/mediatek/mt76/mt7921/usb_mac.c +8 -8
@@ -32,7 +32,7 @@ static void mt7921u_uhw_wr(struct mt76_dev *dev, u32 addr, u32 val)mutex_unlock (&dev->usb.usb_ctrl_mtx); } -static void mt7921u_dma_prefetch (struct mt7921_dev *dev) +static void mt7921u_dma_prefetch (struct mt792x_dev *dev) {mt76_rmw (dev,MT_UWFDMA0_TX_RING_EXT_CTRL (0 ),MT_WPDMA0_MAX_CNT_MASK ,4 );
@@ -70,7 +70,7 @@ static void mt7921u_dma_prefetch(struct mt7921_dev *dev) MT_WPDMA0_BASE_PTR_MASK, 0x2c0); } -static void mt7921u_wfdma_init (struct mt7921_dev *dev) +static void mt7921u_wfdma_init (struct mt792x_dev *dev) {mt7921u_dma_prefetch (dev);
@@ -90,7 +90,7 @@ static void mt7921u_wfdma_init(struct mt7921_dev *dev)mt76_set (dev,MT_WFDMA_DUMMY_CR ,MT_WFDMA_NEED_REINIT ); } -static int mt7921u_dma_rx_evt_ep4 (struct mt7921_dev *dev) +static int mt7921u_dma_rx_evt_ep4 (struct mt792x_dev *dev) {if (!mt76_poll (dev,MT_UWFDMA0_GLO_CFG ,MT_WFDMA0_GLO_CFG_RX_DMA_BUSY ,0 ,1000 ))
@@ -104,7 +104,7 @@ static int mt7921u_dma_rx_evt_ep4(struct mt7921_dev *dev)return 0 ; } -static void mt7921u_epctl_rst_opt (struct mt7921_dev *dev,bool reset) +static void mt7921u_epctl_rst_opt (struct mt792x_dev *dev,bool reset) {u32 val;
@@ -121,7 +121,7 @@ static void mt7921u_epctl_rst_opt(struct mt7921_dev *dev, bool reset)mt7921u_uhw_wr (&dev->mt76,MT_SSUSB_EPCTL_CSR_EP_RST_OPT , val); } -int mt7921u_dma_init (struct mt7921_dev *dev,bool resume) +int mt7921u_dma_init (struct mt792x_dev *dev,bool resume) {int err;
@@ -148,7 +148,7 @@ int mt7921u_dma_init(struct mt7921_dev *dev, bool resume)return 0 ; } -int mt7921u_wfsys_reset (struct mt7921_dev *dev) +int mt7921u_wfsys_reset (struct mt792x_dev *dev) {u32 val;int i;
@@ -180,7 +180,7 @@ int mt7921u_wfsys_reset(struct mt7921_dev *dev)return 0 ; } -int mt7921u_init_reset (struct mt7921_dev *dev) +int mt7921u_init_reset (struct mt792x_dev *dev) {set_bit (MT76_RESET , &dev->mphy.state);
@@ -197,7 +197,7 @@ int mt7921u_init_reset(struct mt7921_dev *dev)return mt76u_resume_rx (&dev->mt76); } -int mt7921u_mac_reset (struct mt7921_dev *dev) +int mt7921u_mac_reset (struct mt792x_dev *dev) {int err;
Signature · 1 line
2.18.0
PATCH 7/16 wifi: mt76: mt7921: rename mt7921_hif_ops in mt792x_hif_ops
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h | 4 ++-- drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7921/sdio.c | 2 +- drivers/net/wireless/mediatek/mt76/mt7921/usb.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +2 -2
@@ -249,7 +249,7 @@ enum mt7921_eeprom_field {#define mt7921_mcu_init (dev) ((dev)->hif_ops->mcu_init(dev))#define __mt7921_mcu_drv_pmctrl (dev) ((dev)->hif_ops->drv_own(dev))#define __mt7921_mcu_fw_pmctrl (dev) ((dev)->hif_ops->fw_own(dev)) -struct mt7921_hif_ops { +struct mt792x_hif_ops {int (*init_reset)(struct mt792x_dev *dev);int (*reset)(struct mt792x_dev *dev);int (*mcu_init)(struct mt792x_dev *dev);
@@ -278,7 +278,7 @@ struct mt792x_dev {struct mt76_connac_pm pm;struct mt76_connac_coredump coredump; -const struct mt7921_hif_ops *hif_ops; +const struct mt792x_hif_ops *hif_ops;struct work_struct ipv6_ns_work;/* IPv6 addresses for WoWLAN */
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +1 -1
@@ -247,7 +247,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev, .sta_remove = mt7921_mac_sta_remove, .update_survey = mt7921_update_channel, }; -static const struct mt7921_hif_ops mt7921_pcie_ops = { +static const struct mt792x_hif_ops mt7921_pcie_ops = { .init_reset = mt7921e_init_reset, .reset = mt7921e_mac_reset, .mcu_init = mt7921e_mcu_init,
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c +1 -1
@@ -114,7 +114,7 @@ static int mt7921s_probe(struct sdio_func *func, .rd_rp = mt76s_rd_rp, .type = MT76_BUS_SDIO, }; -static const struct mt7921_hif_ops mt7921_sdio_ops = { +static const struct mt792x_hif_ops mt7921_sdio_ops = { .init_reset = mt7921s_init_reset, .reset = mt7921s_mac_reset, .mcu_init = mt7921s_mcu_init,
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +1 -1
@@ -191,7 +191,7 @@ static int mt7921u_probe(struct usb_interface *usb_intf, .sta_remove = mt7921_mac_sta_remove, .update_survey = mt7921_update_channel, }; -static const struct mt7921_hif_ops hif_ops = { +static const struct mt792x_hif_ops hif_ops = { .mcu_init = mt7921u_mcu_init, .init_reset = mt7921u_init_reset, .reset = mt7921u_mac_reset,
Signature · 1 line
2.18.0
PATCH 8/16 wifi: mt76: mt792x: move shared structure definition in mt792x.h
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- .../wireless/mediatek/mt76/mt7921/mt7921.h | 111 +-------------- drivers/net/wireless/mediatek/mt76/mt792x.h | 129 ++++++++++++++++++ 2 files changed, 130 insertions(+), 110 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x.h
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +1 -110
@@ -4,9 +4,7 @@#ifndef __MT7921_H#define __MT7921_H -#include <linux/interrupt.h> -#include <linux/ktime.h> -#include "../mt76_connac_mcu.h" +#include "../mt792x.h" #include "regs.h" #include "acpi_sar.h"
@@ -127,9 +125,6 @@ struct mt7921_sdio_intr {#define to_rssi (field, rxv) ((FIELD_GET(field, rxv) - 220) / 2)#define to_rcpi (rssi) (2 * (rssi) + 220) -struct mt792x_vif ; -struct mt792x_sta ; -enum mt7921_txq_id {MT7921_TXQ_BAND0 ,MT7921_TXQ_BAND1 ,
@@ -143,39 +138,6 @@ enum mt7921_rxq_id { MT7921_RXQ_MCU_WM = 0, }; -DECLARE_EWMA(avg_signal, 10, 8) - -struct mt792x_sta { -struct mt76_wcid wcid;/* must be first */ - -struct mt792x_vif *vif; - -u32 airtime_ac[8 ]; - -int ack_signal; -struct ewma_avg_signal avg_ack_signal; - -unsigned long last_txs; - -struct mt76_connac_sta_key_conf bip; -}; - -DECLARE_EWMA (rssi,10 ,8 ); - -struct mt792x_vif { -struct mt76_vif mt76;/* must be first */ - -struct mt792x_sta sta; -struct mt792x_sta *wep_sta; - -struct mt792x_phy *phy; - -struct ewma_rssi rssi; - -struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS ]; -struct ieee80211_chanctx_conf *ctx; -}; -enum {MT7921_CLC_POWER ,MT7921_CLC_CHAN ,
@@ -199,40 +161,6 @@ struct mt7921_clc {u8 data[]; } __packed; -struct mt792x_phy { -struct mt76_phy *mt76; -struct mt792x_dev *dev; - -struct ieee80211_sband_iftype_data iftype[NUM_NL80211_BANDS ][NUM_NL80211_IFTYPES ]; - -u64 omac_mask; - -u16 noise; - -s16 coverage_class; -u8 slottime; - -u32 rx_ampdu_ts; -u32 ampdu_ref; - -struct mt76_mib_stats mib; - -u8 sta_work_count; - -struct sk_buff_head scan_event_list; -struct delayed_work scan_work; -#ifdef CONFIG_ACPI -void *acpisar; -#endif -void *clc[MT7921_CLC_MAX_NUM ]; - -struct work_struct roc_work; -struct timer_list roc_timer; -wait_queue_head_t roc_wait; -u8 roc_token_id; -bool roc_grant; -}; -enum mt7921_eeprom_field {MT_EE_CHIP_ID =0x000 ,MT_EE_VERSION =0x002 ,
@@ -249,43 +177,6 @@ enum mt7921_eeprom_field {#define mt7921_mcu_init (dev) ((dev)->hif_ops->mcu_init(dev))#define __mt7921_mcu_drv_pmctrl (dev) ((dev)->hif_ops->drv_own(dev))#define __mt7921_mcu_fw_pmctrl (dev) ((dev)->hif_ops->fw_own(dev)) -struct mt792x_hif_ops { -int (*init_reset)(struct mt792x_dev *dev); -int (*reset)(struct mt792x_dev *dev); -int (*mcu_init)(struct mt792x_dev *dev); -int (*drv_own)(struct mt792x_dev *dev); -int (*fw_own)(struct mt792x_dev *dev); -}; - -struct mt792x_dev { -union {/* must be first */ -struct mt76_dev mt76; -struct mt76_phy mphy; - }; - -const struct mt76_bus_ops *bus_ops; -struct mt792x_phy phy; - -struct work_struct reset_work; -bool hw_full_reset:1 ; -bool hw_init_done:1 ; -bool fw_assert:1 ; - -struct work_struct init_work; - -u8 fw_debug; -u8 fw_features; - -struct mt76_connac_pm pm; -struct mt76_connac_coredump coredump; -const struct mt792x_hif_ops *hif_ops; - -struct work_struct ipv6_ns_work; -/* IPv6 addresses for WoWLAN */ -struct sk_buff_head ipv6_ns_list; - -enum environment_cap country_ie_env; -};enum {TXPWR_USER ,
drivers/net/wireless/mediatek/mt76/mt792x.h new file +129 -0
129 lines not on this page · raw message
Signature · 1 line
2.18.0
PATCH 9/16 wifi: mt76: mt7921: move mt792x_mutex_{acquire/release} in mt792x.h
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- .../wireless/mediatek/mt76/mt7921/debugfs.c | 32 ++-- .../net/wireless/mediatek/mt76/mt7921/init.c | 8 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 12 +- .../net/wireless/mediatek/mt76/mt7921/main.c | 144 +++++++++--------- .../wireless/mediatek/mt76/mt7921/mt7921.h | 5 - drivers/net/wireless/mediatek/mt76/mt792x.h | 5 + 6 files changed, 103 insertions(+), 103 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +16 -16
@@ -8,9 +8,9 @@ mt7921_reg_set(void *data, u64 val) {struct mt792x_dev *dev = data; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev);mt76_wr (dev, dev->mt76.debugfs_reg, val); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);return 0 ; }
@@ -20,9 +20,9 @@ mt7921_reg_get(void *data, u64 *val) {struct mt792x_dev *dev = data; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev); *val =mt76_rr (dev, dev->mt76.debugfs_reg); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);return 0 ; }
@@ -34,12 +34,12 @@ mt7921_fw_debug_set(void *data, u64 val) {struct mt792x_dev *dev = data; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev); dev->fw_debug = (u8 )val;mt7921_mcu_fw_log_2_host (dev, dev->fw_debug); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);return 0 ; }
@@ -98,7 +98,7 @@ mt7921_tx_stats_show(struct seq_file *file, void *data)struct mt76_mib_stats *mib = &phy->mib;int i; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev);mt7921_ampdu_stat_read_phy (phy, file);
@@ -113,7 +113,7 @@ mt7921_tx_stats_show(struct seq_file *file, void *data)seq_puts (file,"\n" ); } -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);return 0 ; }
@@ -126,7 +126,7 @@ mt7921_queues_acq(struct seq_file *s, void *data)struct mt792x_dev *dev =dev_get_drvdata (s->private);int i; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev);for (i =0 ; i <4 ; i++) {u32 ctrl, val, qlen =0 ;
@@ -146,7 +146,7 @@ mt7921_queues_acq(struct seq_file *s, void *data)seq_printf (s,"AC%d: queued=%d\n" , i, qlen); } -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);return 0 ; }
@@ -215,9 +215,9 @@ mt7921_txpwr(struct seq_file *s, void *data)struct mt7921_txpwr txpwr;int ret; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev); ret =mt7921_get_txpwr_info (dev, &txpwr); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);if (ret)return ret;
@@ -316,7 +316,7 @@ mt7921_deep_sleep_set(void *data, u64 val)if (mt76_is_usb (&dev->mt76))return -EOPNOTSUPP ; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev);if (pm->ds_enable_user == enable) goto out;
@@ -324,7 +324,7 @@ mt7921_deep_sleep_set(void *data, u64 val) pm->ds_enable = enable && !monitor;mt76_connac_mcu_set_deep_sleep (&dev->mt76, pm->ds_enable); out: -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);return 0 ; }
@@ -400,9 +400,9 @@ static int mt7921_chip_reset(void *data, u64 val)break ;default :/* Collect the core dump before reset wifisys. */ -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev); ret =mt76_connac_mcu_chip_config (&dev->mt76); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);break ; }
drivers/net/wireless/mediatek/mt76/mt7921/init.c +4 -4
@@ -64,9 +64,9 @@ static ssize_t mt7921_thermal_temp_show(struct device *dev,struct mt792x_dev *mdev = phy->dev;int temperature; -mt7921_mutex_acquire (mdev); +mt792x_mutex_acquire (mdev); temperature =mt7921_mcu_get_temperature (phy); -mt7921_mutex_release (mdev); +mt792x_mutex_release (mdev);if (temperature <0 )return temperature;
@@ -116,11 +116,11 @@ mt7921_regd_notifier(struct wiphy *wiphy, dev->mt76.region = request->dfs_region; dev->country_ie_env = request->country_ie_env; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev);mt7921_mcu_set_clc (dev, request->alpha2, request->country_ie_env);mt76_connac_mcu_set_channel_domain (hw->priv);mt7921_set_tx_sar_pwr (hw,NULL ); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev); } static int
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +6 -6
@@ -971,7 +971,7 @@ void mt7921_mac_work(struct work_struct *work) mac_work.work); phy = mphy->priv; -mt7921_mutex_acquire (phy->dev); +mt792x_mutex_acquire (phy->dev);mt76_update_survey (mphy);if (++mphy->mac_work_count ==2 ) {
@@ -980,7 +980,7 @@ void mt7921_mac_work(struct work_struct *work)mt7921_mac_update_mib_stats (phy); } -mt7921_mutex_release (phy->dev); +mt792x_mutex_release (phy->dev);mt76_tx_status_check (mphy->dev, false); ieee80211_queue_delayed_work(phy->mt76->hw, &mphy->mac_work,
@@ -1191,9 +1191,9 @@ bool mt7921_usb_sdio_tx_status_data(struct mt76_dev *mdev, u8 *update) { struct mt792x_dev *dev = container_of(mdev, struct mt792x_dev, mt76); -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev);mt7921_mac_sta_poll (dev); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev);return false; }
@@ -1213,10 +1213,10 @@ void mt7921_set_ipv6_ns_work(struct work_struct *work)if (!skb)break ; -mt7921_mutex_acquire (dev); +mt792x_mutex_acquire (dev); ret =mt76_mcu_skb_send_msg (&dev->mt76, skb,MCU_UNI_CMD (OFFLOAD ), true); -mt7921_mutex_release (dev); +mt792x_mutex_release (dev); }while (!ret);
drivers/net/wireless/mediatek/mt76/mt7921/main.c +72 -72
504 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -5
@@ -224,11 +224,6 @@ mt7921_hw_dev(struct ieee80211_hw *hw) return container_of(phy->dev, struct mt792x_dev, mt76); } -#define mt7921_mutex_acquire (dev) \ - mt76_connac_mutex_acquire(&(dev)->mt76, &(dev)->pm) -#define mt7921_mutex_release (dev) \ - mt76_connac_mutex_release(&(dev)->mt76, &(dev)->pm) -extern const struct ieee80211_ops mt7921_ops;u32 mt7921_reg_map (struct mt792x_dev *dev,u32 addr);
drivers/net/wireless/mediatek/mt76/mt792x.h +5 -0
@@ -126,4 +126,9 @@ struct mt792x_dev { u32 backup_l2; }; +#define mt792x_mutex_acquire (dev) \ + mt76_connac_mutex_acquire(&(dev)->mt76, &(dev)->pm) +#define mt792x_mutex_release (dev) \ + mt76_connac_mutex_release(&(dev)->mt76, &(dev)->pm) +#endif /* __MT7925_H */
Signature · 1 line
2.18.0
PATCH 10/16 wifi: mt76: mt7921: move mt792x_hw_dev in mt792x.h
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
This is a preliminary patch to introduce WiFi7 chipset support
--- .../net/wireless/mediatek/mt76/mt7921/init.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/main.c | 66 +++++++++---------- .../wireless/mediatek/mt76/mt7921/mt7921.h | 8 --- .../net/wireless/mediatek/mt76/mt7921/usb.c | 2 +- drivers/net/wireless/mediatek/mt76/mt792x.h | 8 +++ 5 files changed, 43 insertions(+), 43 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/init.c +1 -1
@@ -110,7 +110,7 @@ mt7921_regd_notifier(struct wiphy *wiphy, struct regulatory_request *request) {struct ieee80211_hw *hw =wiphy_to_ieee80211_hw (wiphy); -struct mt792x_dev *dev =mt7921_hw_dev (hw); +struct mt792x_dev *dev =mt792x_hw_dev (hw);memcpy (dev->mt76.alpha2, request->alpha2,sizeof (dev->mt76.alpha2)); dev->mt76.region = request->dfs_region;
drivers/net/wireless/mediatek/mt76/mt7921/main.c +33 -33
264 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -8
@@ -216,14 +216,6 @@ mt7921_hw_phy(struct ieee80211_hw *hw)return phy->priv; } -static inline struct mt792x_dev * -mt7921_hw_dev (struct ieee80211_hw *hw) -{ -struct mt76_phy *phy = hw->priv; - - return container_of(phy->dev, struct mt792x_dev, mt76); -} -extern const struct ieee80211_ops mt7921_ops;u32 mt7921_reg_map (struct mt792x_dev *dev,u32 addr);
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +1 -1
@@ -157,7 +157,7 @@ static int mt7921u_mcu_init(struct mt792x_dev *dev)static void mt7921u_stop (struct ieee80211_hw *hw) { -struct mt792x_dev *dev =mt7921_hw_dev (hw); +struct mt792x_dev *dev =mt792x_hw_dev (hw);mt76u_stop_tx (&dev->mt76);mt7921_stop (hw);
drivers/net/wireless/mediatek/mt76/mt792x.h +8 -0
@@ -126,6 +126,14 @@ struct mt792x_dev {u32 backup_l2; }; +static inline struct mt792x_dev * +mt792x_hw_dev (struct ieee80211_hw *hw) +{ +struct mt76_phy *phy = hw->priv; + + return container_of(phy->dev, struct mt792x_dev, mt76); +} +#define mt792x_mutex_acquire (dev) \ mt76_connac_mutex_acquire(&(dev)->mt76, &(dev)->pm)#define mt792x_mutex_release (dev) \
Signature · 1 line
2.18.0
PATCH 11/16 wifi: mt76: mt792x: introduce mt792x-lib module
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
mt792x-lib module will contain the shared code between mt7921 and new MT79 WiFi7 chipset
---
drivers/net/wireless/mediatek/mt76/Kconfig | 4 +
drivers/net/wireless/mediatek/mt76/Makefile | 4 +
.../net/wireless/mediatek/mt76/mt7921/Kconfig | 2 +-
.../wireless/mediatek/mt76/mt7921/Makefile | 4 +-
.../wireless/mediatek/mt76/mt7921/debugfs.c | 2 +-
.../net/wireless/mediatek/mt76/mt7921/init.c | 16 +-
.../net/wireless/mediatek/mt76/mt7921/mac.c | 148 +----
.../net/wireless/mediatek/mt76/mt7921/main.c | 535 ++----------------
.../net/wireless/mediatek/mt76/mt7921/mcu.c | 2 +-
.../wireless/mediatek/mt76/mt7921/mt7921.h | 25 +-
.../net/wireless/mediatek/mt76/mt7921/regs.h | 4 +
.../wireless/mediatek/mt76/mt7921/sdio_mcu.c | 2 +-
.../net/wireless/mediatek/mt76/mt7921/trace.c | 12 -
drivers/net/wireless/mediatek/mt76/mt792x.h | 61 ++
.../net/wireless/mediatek/mt76/mt792x_core.c | 469 +++++++++++++++
.../net/wireless/mediatek/mt76/mt792x_mac.c | 136 +++++
.../net/wireless/mediatek/mt76/mt792x_regs.h | 3 -
.../net/wireless/mediatek/mt76/mt792x_trace.c | 14 +
.../{mt7921/mt7921_trace.h => mt792x_trace.h} | 14 +-
19 files changed, 763 insertions(+), 694 deletions(-)
delete mode 100644 drivers/net/wireless/mediatek/mt76/mt7921/trace.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_core.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_mac.c
create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_trace.c
rename drivers/net/wireless/mediatek/mt76/{mt7921/mt7921_trace.h => mt792x_trace.h} (72%)drivers/net/wireless/mediatek/mt76/Kconfig +4 -0
@@ -29,6 +29,10 @@ config MT76_CONNAC_LIB tristate select MT76_CORE +config MT792x_LIB + tristate + select MT76_CONNAC_LIB + source "drivers/net/wireless/mediatek/mt76/mt76x0/Kconfig" source "drivers/net/wireless/mediatek/mt76/mt76x2/Kconfig" source "drivers/net/wireless/mediatek/mt76/mt7603/Kconfig"
drivers/net/wireless/mediatek/mt76/Makefile +4 -0
@@ -5,6 +5,7 @@ obj-$(CONFIG_MT76_SDIO) += mt76-sdio.o obj-$(CONFIG_MT76x02_LIB) += mt76x02-lib.o obj-$(CONFIG_MT76x02_USB) += mt76x02-usb.o obj-$(CONFIG_MT76_CONNAC_LIB) += mt76-connac-lib.o +obj-$(CONFIG_MT792x_LIB) += mt792x-lib.o mt76-y := \ mmio.o util.o trace.o dma.o mac80211.o debugfs.o eeprom.o \
@@ -19,6 +20,7 @@ mt76-sdio-y := sdio.o sdio_txrx.o CFLAGS_trace.o := -I$(src) CFLAGS_usb_trace.o := -I$(src) CFLAGS_mt76x02_trace.o := -I$(src) +CFLAGS_mt792x_trace.o := -I$(src) mt76x02-lib-y := mt76x02_util.o mt76x02_mac.o mt76x02_mcu.o \ mt76x02_eeprom.o mt76x02_phy.o mt76x02_mmio.o \
@@ -29,6 +31,8 @@ mt76x02-usb-y := mt76x02_usb_mcu.o mt76x02_usb_core.o mt76-connac-lib-y := mt76_connac_mcu.o mt76_connac_mac.o mt76_connac3_mac.o +mt792x-lib-y := mt792x_core.o mt792x_mac.o mt792x_trace.o + obj-$(CONFIG_MT76x0_COMMON) += mt76x0/ obj-$(CONFIG_MT76x2_COMMON) += mt76x2/ obj-$(CONFIG_MT7603E) += mt7603/
drivers/net/wireless/mediatek/mt76/mt7921/Kconfig +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: ISC config MT7921_COMMON tristate - select MT76_CONNAC_LIB + select MT792x_LIB select WANT_DEV_COREDUMP config MT7921E
drivers/net/wireless/mediatek/mt76/mt7921/Makefile +1 -3
@@ -5,9 +5,7 @@ obj-$(CONFIG_MT7921E) += mt7921e.o obj-$(CONFIG_MT7921S) += mt7921s.o obj-$(CONFIG_MT7921U) += mt7921u.o -CFLAGS_trace.o := -I$(src) - -mt7921-common-y := mac.o mcu.o main.o init.o debugfs.o trace.o +mt7921-common-y := mac.o mcu.o main.o init.o debugfs.o mt7921-common-$(CONFIG_NL80211_TESTMODE) += testmode.o mt7921-common-$(CONFIG_ACPI) += acpi_sar.o mt7921e-y := pci.o pci_mac.o pci_mcu.o dma.o
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +1 -1
@@ -67,7 +67,7 @@ mt7921_ampdu_stat_read_phy(struct mt792x_phy *phy,if (!phy)return ; -mt7921_mac_update_mib_stats (phy); +mt792x_mac_update_mib_stats (phy);/* Tx ampdu stat */ for (i =0 ; i <ARRAY_SIZE (range); i++)
drivers/net/wireless/mediatek/mt76/mt7921/init.c +8 -8
@@ -12,7 +12,7 @@static const struct ieee80211_iface_limit if_limits[] = { { - .max =MT7921_MAX_INTERFACES , + .max = MT792x_MAX_INTERFACES, .types =BIT (NL80211_IFTYPE_STATION ) }, {
@@ -25,7 +25,7 @@ static const struct ieee80211_iface_combination if_comb[] = { { .limits = if_limits, .n_limits = ARRAY_SIZE(if_limits), - .max_interfaces = MT7921_MAX_INTERFACES, + .max_interfaces = MT792x_MAX_INTERFACES, .num_different_channels = 1, .beacon_int_infra_match = true, },
@@ -126,7 +126,7 @@ mt7921_regd_notifier(struct wiphy *wiphy,static int mt7921_init_wiphy (struct ieee80211_hw *hw) { -struct mt792x_phy *phy =mt7921_hw_phy (hw); +struct mt792x_phy *phy =mt792x_hw_phy (hw);struct mt792x_dev *dev = phy->dev;struct wiphy *wiphy = hw->wiphy;
@@ -319,7 +319,7 @@ int mt7921_mac_init(struct mt792x_dev *dev)/* enable hardware rx header translation */ mt76_set (dev,MT_MDP_DCR0 ,MT_MDP_DCR0_RX_HDR_TRANS_EN ); -for (i =0 ; i <MT7921_WTBL_SIZE ; i++) +for (i =0 ; i < MT792x_WTBL_SIZE; i++)mt7921_mac_wtbl_update (dev, i,MT_WTBL_UPDATE_ADM_COUNT_CLEAR );for (i =0 ; i <2 ; i++)
@@ -379,7 +379,7 @@ static int mt7921_init_wcid(struct mt792x_dev *dev)int idx;/* Beacon and mgmt frames should occupy wcid 0 */ - idx =mt76_wcid_alloc (dev->mt76.wcid_mask,MT7921_WTBL_STA -1 ); + idx =mt76_wcid_alloc (dev->mt76.wcid_mask, MT792x_WTBL_STA -1 );if (idx)return -ENOSPC ;
@@ -437,7 +437,7 @@ int mt7921_register_device(struct mt792x_dev *dev) dev->phy.dev = dev; dev->phy.mt76 = &dev->mt76.phy; dev->mt76.phy.priv = &dev->phy; - dev->mt76.tx_worker.fn = mt7921_tx_worker; + dev->mt76.tx_worker.fn = mt792x_tx_worker;INIT_DELAYED_WORK (&dev->pm.ps_work, mt7921_pm_power_save_work);INIT_WORK (&dev->pm.wake_work, mt7921_pm_wake_work);
@@ -447,7 +447,7 @@ int mt7921_register_device(struct mt792x_dev *dev)if (mt76_is_sdio (&dev->mt76))init_waitqueue_head (&dev->mt76.sdio.wait);spin_lock_init (&dev->pm.txq_lock); -INIT_DELAYED_WORK (&dev->mphy.mac_work, mt7921_mac_work); +INIT_DELAYED_WORK (&dev->mphy.mac_work, mt792x_mac_work);INIT_DELAYED_WORK (&dev->phy.scan_work, mt7921_scan_work);INIT_DELAYED_WORK (&dev->coredump.work, mt7921_coredump_work);#if IS_ENABLED (CONFIG_IPV6 )
@@ -461,7 +461,7 @@ int mt7921_register_device(struct mt792x_dev *dev)INIT_WORK (&dev->init_work, mt7921_init_work);INIT_WORK (&dev->phy.roc_work, mt7921_roc_work); -timer_setup (&dev->phy.roc_timer, mt7921_roc_timer,0 ); +timer_setup (&dev->phy.roc_timer, mt792x_roc_timer,0 );init_waitqueue_head (&dev->phy.roc_wait); dev->pm.idle_timeout =MT7921_PM_TIMEOUT ;
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +11 -137
184 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/main.c +39 -496
758 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +1 -1
@@ -4,9 +4,9 @@#include <linux/fs.h> #include <linux/firmware.h> #include "mt7921.h" -#include "mt7921_trace.h" #include "mcu.h" #include "../mt76_connac2_mac.h" +#include "../mt792x_trace.h" #define MT_STA_BFER BIT(0)#define MT_STA_BFEE BIT(1)
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +1 -24
@@ -8,15 +8,8 @@#include "regs.h" #include "acpi_sar.h" -#define MT7921_MAX_INTERFACES 4 -#define MT7921_WTBL_SIZE 20 -#define MT7921_WTBL_RESERVED (MT7921_WTBL_SIZE - 1) -#define MT7921_WTBL_STA (MT7921_WTBL_RESERVED - \ - MT7921_MAX_INTERFACES) -#define MT7921_PM_TIMEOUT (HZ / 12)#define MT7921_HW_SCAN_TIMEOUT (HZ / 10) -#define MT7921_WATCHDOG_TIME (HZ / 4)#define MT7921_TX_RING_SIZE 2048#define MT7921_TX_MCU_RING_SIZE 256
@@ -43,9 +36,6 @@#define MT7921_EEPROM_BLOCK_SIZE 16 -#define MT7921_CFEND_RATE_DEFAULT 0x49/* OFDM 24M */ -#define MT7921_CFEND_RATE_11B 0x03/* 11B LP, 11M */ -#define MT7921_SKU_RATE_NUM 161#define MT7921_SKU_MAX_DELTA_IDX MT7921_SKU_RATE_NUM#define MT7921_SKU_TABLE_SIZE (MT7921_SKU_RATE_NUM + 1)
@@ -208,14 +198,6 @@ struct mt7921_txpwr { } data[TXPWR_MAX_NUM ]; }; -static inline struct mt792x_phy * -mt7921_hw_phy (struct ieee80211_hw *hw) -{ -struct mt76_phy *phy = hw->priv; - -return phy->priv; -} -extern const struct ieee80211_ops mt7921_ops;u32 mt7921_reg_map (struct mt792x_dev *dev,u32 addr);
@@ -300,25 +282,21 @@ mt7921_skb_add_usb_sdio_hdr(struct mt792x_dev *dev, struct sk_buff *skb,void mt7921_stop (struct ieee80211_hw *hw);int mt7921_mac_init (struct mt792x_dev *dev); -bool mt7921_mac_wtbl_update (struct mt792x_dev *dev,int idx,u32 mask);void mt7921_mac_reset_counters (struct mt792x_phy *phy); -void mt7921_mac_set_timing (struct mt792x_phy *phy); +bool mt7921_mac_wtbl_update (struct mt792x_dev *dev,int idx,u32 mask);int mt7921_mac_sta_add (struct mt76_dev *mdev,struct ieee80211_vif *vif,struct ieee80211_sta *sta);void mt7921_mac_sta_assoc (struct mt76_dev *mdev,struct ieee80211_vif *vif,struct ieee80211_sta *sta);void mt7921_mac_sta_remove (struct mt76_dev *mdev,struct ieee80211_vif *vif,struct ieee80211_sta *sta); -void mt7921_mac_work (struct work_struct *work);void mt7921_mac_reset_work (struct work_struct *work); -void mt7921_mac_update_mib_stats (struct mt792x_phy *phy);void mt7921_reset (struct mt76_dev *mdev);int mt7921e_tx_prepare_skb (struct mt76_dev *mdev,void *txwi_ptr,enum mt76_txq_id qid,struct mt76_wcid *wcid,struct ieee80211_sta *sta,struct mt76_tx_info *tx_info); -void mt7921_tx_worker (struct mt76_worker *w);bool mt7921_rx_check (struct mt76_dev *mdev,void *data,int len);void mt7921_queue_rx_skb (struct mt76_dev *mdev,enum mt76_rxq_id q,struct sk_buff *skb,u32 *info);
@@ -338,7 +316,6 @@ int mt7921_mcu_uni_rx_ba(struct mt792x_dev *dev, bool enable);void mt7921_scan_work (struct work_struct *work);void mt7921_roc_work (struct work_struct *work); -void mt7921_roc_timer (struct timer_list *timer);int mt7921_mcu_uni_bss_ps (struct mt792x_dev *dev,struct ieee80211_vif *vif);int mt7921_mcu_drv_pmctrl (struct mt792x_dev *dev);int mt7921_mcu_fw_pmctrl (struct mt792x_dev *dev);
drivers/net/wireless/mediatek/mt76/mt7921/regs.h +4 -0
@@ -93,4 +93,8 @@#define MT_WTBLON_TOP_WDUCR MT_WTBLON_TOP(0x200)#define MT_WTBLON_TOP_WDUCR_GROUP GENMASK(2, 0) +#define MT_WTBL_UPDATE MT_WTBLON_TOP(0x230) +#define MT_WTBL_UPDATE_WLAN_IDX GENMASK(9, 0) +#define MT_WTBL_UPDATE_ADM_COUNT_CLEAR BIT(12) +#endif
drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c +1 -1
@@ -23,7 +23,7 @@ mt7921s_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,/* We just return in case firmware assertion to avoid blocking the * common workqueue to run, for example, the coredump work might be -* blocked by mt7921_mac_work that is excuting register access via sdio +* blocked by mt792x_mac_work that is excuting register access via sdio * bus. */ if (dev->fw_assert)
drivers/net/wireless/mediatek/mt76/mt7921/trace.c deleted +0 -12
@@ -1,12 +0,0 @@ -// SPDX-License-Identifier: ISC -/* -* Copyright (C) 2021 Lorenzo Bianconi <[email protected]> -*/ - -#include <linux/module.h> - -#ifndef __CHECKER__ -#define CREATE_TRACE_POINTS -#include "mt7921_trace.h" - -#endif
drivers/net/wireless/mediatek/mt76/mt792x.h +61 -0
76 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt792x_core.c new file +469 -0
469 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt792x_mac.c new file +136 -0
136 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt792x_regs.h +0 -3
@@ -157,9 +157,6 @@#define MT_WTBLON_TOP_BASE 0x820d4000#define MT_WTBLON_TOP (ofs) (MT_WTBLON_TOP_BASE + (ofs)) -#define MT_WTBL_UPDATE MT_WTBLON_TOP(0x230) -#define MT_WTBL_UPDATE_WLAN_IDX GENMASK(9, 0) -#define MT_WTBL_UPDATE_ADM_COUNT_CLEAR BIT(12)#define MT_WTBL_UPDATE_BUSY BIT(31)#define MT_WTBL_ITCR MT_WTBLON_TOP(0x3b0)
drivers/net/wireless/mediatek/mt76/mt792x_trace.c new file +14 -0
@@ -0,0 +1,14 @@ +// SPDX-License-Identifier: ISC +/* +* Copyright (C) 2023 Lorenzo Bianconi <[email protected]> +*/ + +#include <linux/module.h> + +#ifndef __CHECKER__ +#define CREATE_TRACE_POINTS +#include "mt792x_trace.h" + +EXPORT_TRACEPOINT_SYMBOL_GPL (lp_event); + +#endif
drivers/net/wireless/mediatek/mt76/mt792x_trace.h renamed from drivers/net/wireless/mediatek/mt76/mt7921/mt7921_trace.h +7 -7
@@ -1,20 +1,20 @@/* SPDX-License-Identifier: ISC */ /* -* Copyright (C) 2021 Lorenzo Bianconi <[email protected]> +* Copyright (C) 2023 Lorenzo Bianconi <[email protected]> */ -#if !defined(__MT7921_TRACE_H) || defined(TRACE_HEADER_MULTI_READ ) -#define __MT7921_TRACE_H +#if !defined(__MT792X_TRACE_H) || defined(TRACE_HEADER_MULTI_READ ) +#define __MT792X_TRACE_H#include <linux/tracepoint.h> -#include "mt7921.h" +#include "mt792x.h" #undef TRACE_SYSTEM -#define TRACE_SYSTEM mt7921 +#define TRACE_SYSTEM mt792x#define MAXNAME 32#define DEV_ENTRY __array(char, wiphy_name, 32) -#define DEV_ASSIGN strlcpy(__entry->wiphy_name, \ +#define DEV_ASSIGN strscpy(__entry->wiphy_name, \ wiphy_name(mt76_hw(dev)->wiphy), MAXNAME)#define DEV_PR_FMT "%s"#define DEV_PR_ARG __entry->wiphy_name
@@ -46,6 +46,6 @@ TRACE_EVENT(lp_event,#undef TRACE_INCLUDE_PATH#define TRACE_INCLUDE_PATH .#undef TRACE_INCLUDE_FILE -#define TRACE_INCLUDE_FILE mt7921_trace +#define TRACE_INCLUDE_FILE mt792x_trace#include <trace/define_trace.h>
Signature · 1 line
2.18.0
PATCH 12/16 wifi: mt76: mt7921: move mac shared code in mt792x-lib module
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
Reduce duplicated code moving mac shared code in mt792x-lib module.
--- .../wireless/mediatek/mt76/mt7921/debugfs.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 170 +----------------- .../net/wireless/mediatek/mt76/mt7921/main.c | 4 +- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 6 +- .../wireless/mediatek/mt76/mt7921/mt7921.h | 3 - .../net/wireless/mediatek/mt76/mt7921/pci.c | 6 +- .../net/wireless/mediatek/mt76/mt7921/sdio.c | 6 +- .../net/wireless/mediatek/mt76/mt7921/usb.c | 6 +- drivers/net/wireless/mediatek/mt76/mt792x.h | 20 +++ .../net/wireless/mediatek/mt76/mt792x_mac.c | 148 +++++++++++++++ 10 files changed, 187 insertions(+), 184 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +1 -1
@@ -396,7 +396,7 @@ static int mt7921_chip_reset(void *data, u64 val)switch (val) {case 1 :/* Reset wifisys directly. */ -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);break ;default :/* Collect the core dump before reset wifisys. */
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +4 -166
218 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/main.c +2 -2
@@ -240,7 +240,7 @@ int __mt7921_start(struct mt792x_phy *phy)if (err)return err; -mt7921_mac_reset_counters (phy); +mt792x_mac_reset_counters (phy);set_bit (MT76_STATE_RUNNING , &mphy->state); ieee80211_queue_delayed_work(mphy->hw, &mphy->mac_work,
@@ -454,7 +454,7 @@ static int mt7921_set_channel(struct mt792x_phy *phy)mt792x_mac_set_timeing (phy); -mt7921_mac_reset_counters (phy); +mt792x_mac_reset_counters (phy); phy->noise =0 ; out:
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +3 -3
@@ -25,7 +25,7 @@ int mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd,if (!skb) {dev_err (mdev->dev,"Message %08x (seq %d) timeout\n" , cmd, seq); -mt7921_reset (mdev); +mt792x_reset (mdev);return -ETIMEDOUT ; }
@@ -958,7 +958,7 @@ int mt7921_mcu_drv_pmctrl(struct mt792x_dev *dev)mutex_unlock (&pm->mutex);if (err) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
@@ -980,7 +980,7 @@ int mt7921_mcu_fw_pmctrl(struct mt792x_dev *dev)mutex_unlock (&pm->mutex);if (err) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -3
@@ -282,7 +282,6 @@ mt7921_skb_add_usb_sdio_hdr(struct mt792x_dev *dev, struct sk_buff *skb,void mt7921_stop (struct ieee80211_hw *hw);int mt7921_mac_init (struct mt792x_dev *dev); -void mt7921_mac_reset_counters (struct mt792x_phy *phy);bool mt7921_mac_wtbl_update (struct mt792x_dev *dev,int idx,u32 mask);int mt7921_mac_sta_add (struct mt76_dev *mdev,struct ieee80211_vif *vif,struct ieee80211_sta *sta);
@@ -291,7 +290,6 @@ void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif,void mt7921_mac_sta_remove (struct mt76_dev *mdev,struct ieee80211_vif *vif,struct ieee80211_sta *sta);void mt7921_mac_reset_work (struct work_struct *work); -void mt7921_reset (struct mt76_dev *mdev); int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, enum mt76_txq_id qid, struct mt76_wcid *wcid, struct ieee80211_sta *sta,
@@ -302,7 +300,6 @@ void mt7921_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q, struct sk_buff *skb, u32 *info);void mt7921_stats_work (struct work_struct *work);void mt7921_set_stream_he_caps (struct mt792x_phy *phy); -void mt7921_update_channel (struct mt76_phy *mphy);int mt7921_init_debugfs (struct mt792x_dev *dev); int mt7921_mcu_set_beacon_filter(struct mt792x_dev *dev,
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +3 -3
@@ -245,7 +245,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev, .sta_add = mt7921_mac_sta_add, .sta_assoc = mt7921_mac_sta_assoc, .sta_remove = mt7921_mac_sta_remove, - .update_survey = mt7921_update_channel, + .update_survey = mt792x_update_channel, };static const struct mt792x_hif_ops mt7921_pcie_ops = { .init_reset = mt7921e_init_reset,
@@ -450,7 +450,7 @@ static int mt7921_pci_suspend(struct device *device) pm->suspended = false;if (err <0 ) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
@@ -500,7 +500,7 @@ static int mt7921_pci_resume(struct device *device) pm->suspended = false;if (err <0 ) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c +3 -3
@@ -102,7 +102,7 @@ static int mt7921s_probe(struct sdio_func *func, .sta_add = mt7921_mac_sta_add, .sta_assoc = mt7921_mac_sta_assoc, .sta_remove = mt7921_mac_sta_remove, - .update_survey = mt7921_update_channel, + .update_survey = mt792x_update_channel, };static const struct mt76_bus_ops mt7921s_ops = { .rr = mt76s_rr,
@@ -269,7 +269,7 @@ static int mt7921s_suspend(struct device *__dev) pm->suspended = false;if (err <0 ) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
@@ -302,7 +302,7 @@ static int mt7921s_resume(struct device *__dev) pm->suspended = false;if (err <0 ) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +3 -3
@@ -189,7 +189,7 @@ static int mt7921u_probe(struct usb_interface *usb_intf, .sta_add = mt7921_mac_sta_add, .sta_assoc = mt7921_mac_sta_assoc, .sta_remove = mt7921_mac_sta_remove, - .update_survey = mt7921_update_channel, + .update_survey = mt792x_update_channel, };static const struct mt792x_hif_ops hif_ops = { .mcu_init = mt7921u_mcu_init,
@@ -322,7 +322,7 @@ static int mt7921u_suspend(struct usb_interface *intf, pm_message_t state) pm->suspended = false;if (err <0 ) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
@@ -364,7 +364,7 @@ static int mt7921u_resume(struct usb_interface *intf) pm->suspended = false;if (err <0 ) -mt7921_reset (&dev->mt76); +mt792x_reset (&dev->mt76);return err; }
drivers/net/wireless/mediatek/mt76/mt792x.h +20 -0
@@ -155,11 +155,31 @@ mt792x_hw_phy(struct ieee80211_hw *hw)return phy->priv; } +static inline void +mt792x_get_status_freq_info (struct mt76_rx_status *status,u8 chfreq) +{ +if (chfreq >180 ) { + status->band =NL80211_BAND_6GHZ ; + chfreq = (chfreq -181 ) *4 +1 ; + }else if (chfreq >14 ) { + status->band =NL80211_BAND_5GHZ ; + }else { + status->band =NL80211_BAND_2GHZ ; + } + status->freq =ieee80211_channel_to_frequency (chfreq, status->band); +} +#define mt792x_mutex_acquire (dev) \ mt76_connac_mutex_acquire(&(dev)->mt76, &(dev)->pm)#define mt792x_mutex_release (dev) \ mt76_connac_mutex_release(&(dev)->mt76, &(dev)->pm) +void mt792x_reset (struct mt76_dev *mdev); +void mt792x_update_channel (struct mt76_phy *mphy); +void mt792x_mac_reset_counters (struct mt792x_phy *phy); +void mt792x_mac_assoc_rssi (struct mt792x_dev *dev,struct sk_buff *skb); +struct mt76_wcid *mt792x_rx_get_wcid (struct mt792x_dev *dev,u16 idx, +bool unicast);void mt792x_mac_update_mib_stats (struct mt792x_phy *phy);void mt792x_mac_set_timeing (struct mt792x_phy *phy);void mt792x_mac_work (struct work_struct *work);
drivers/net/wireless/mediatek/mt76/mt792x_mac.c +148 -0
151 lines not on this page · raw message
Signature · 1 line
2.18.0
PATCH 13/16 wifi: mt76: mt7921: move dma shared code in mt792x-lib module
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
Reduce duplicated code moving dma shared code in mt792x-lib module.
--- .../net/wireless/mediatek/mt76/mt7921/dma.c | 102 +----------------- .../wireless/mediatek/mt76/mt7921/mt7921.h | 7 -- .../net/wireless/mediatek/mt76/mt7921/pci.c | 6 +- .../net/wireless/mediatek/mt76/mt7921/regs.h | 2 - .../net/wireless/mediatek/mt76/mt7921/usb.c | 2 +- drivers/net/wireless/mediatek/mt76/mt792x.h | 10 ++ .../net/wireless/mediatek/mt76/mt792x_core.c | 98 ++++++++++++++++- .../net/wireless/mediatek/mt76/mt792x_regs.h | 3 + 8 files changed, 119 insertions(+), 111 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/dma.c +5 -97
@@ -25,24 +25,6 @@ static int mt7921_poll_tx(struct napi_struct *napi, int budget)return 0 ; } -static int mt7921_poll_rx (struct napi_struct *napi,int budget) -{ -struct mt792x_dev *dev; -int done; - - dev = container_of(napi->dev, struct mt792x_dev, mt76.napi_dev); - -if (!mt76_connac_pm_ref (&dev->mphy, &dev->pm)) { -napi_complete (napi); -queue_work (dev->mt76.wq, &dev->pm.wake_work); -return 0 ; - } - done =mt76_dma_rx_poll (napi, budget); -mt76_connac_pm_unref (&dev->mphy, &dev->pm); - -return done; -} -static void mt7921_dma_prefetch (struct mt792x_dev *dev) {#define PREFETCH (base, depth) ((base) << 16 | (depth))
@@ -64,40 +46,6 @@ static void mt7921_dma_prefetch(struct mt792x_dev *dev)mt76_wr (dev,MT_WFDMA0_TX_RING17_EXT_CTRL ,PREFETCH (0x380 ,0x4 )); } -static int mt7921_dma_disable (struct mt792x_dev *dev,bool force) -{ -/* disable WFDMA0 */ -mt76_clear (dev,MT_WFDMA0_GLO_CFG , -MT_WFDMA0_GLO_CFG_TX_DMA_EN |MT_WFDMA0_GLO_CFG_RX_DMA_EN | -MT_WFDMA0_GLO_CFG_CSR_DISP_BASE_PTR_CHAIN_EN | -MT_WFDMA0_GLO_CFG_OMIT_TX_INFO | -MT_WFDMA0_GLO_CFG_OMIT_RX_INFO | -MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2 ); - -if (!mt76_poll_msec_tick (dev,MT_WFDMA0_GLO_CFG , -MT_WFDMA0_GLO_CFG_TX_DMA_BUSY | -MT_WFDMA0_GLO_CFG_RX_DMA_BUSY ,0 ,100 ,1 )) -return -ETIMEDOUT ; - -/* disable dmashdl */ -mt76_clear (dev,MT_WFDMA0_GLO_CFG_EXT0 , -MT_WFDMA0_CSR_TX_DMASHDL_ENABLE ); -mt76_set (dev,MT_DMASHDL_SW_CONTROL ,MT_DMASHDL_DMASHDL_BYPASS ); - -if (force) { -/* reset */ -mt76_clear (dev,MT_WFDMA0_RST , -MT_WFDMA0_RST_DMASHDL_ALL_RST | -MT_WFDMA0_RST_LOGIC_RST ); - -mt76_set (dev,MT_WFDMA0_RST , -MT_WFDMA0_RST_DMASHDL_ALL_RST | -MT_WFDMA0_RST_LOGIC_RST ); - } - -return 0 ; -} -static int mt7921_dma_enable (struct mt792x_dev *dev) {/* configure perfetch settings */
@@ -135,7 +83,7 @@ static int mt7921_dma_reset(struct mt792x_dev *dev, bool force) {int i, err; - err =mt7921_dma_disable (dev, force); + err =mt792x_dma_disable (dev, force);if (err)return err;
@@ -154,19 +102,6 @@ static int mt7921_dma_reset(struct mt792x_dev *dev, bool force)return mt7921_dma_enable (dev); } -int mt7921_wfsys_reset (struct mt792x_dev *dev) -{ -mt76_clear (dev,MT_WFSYS_SW_RST_B ,WFSYS_SW_RST_B ); -msleep (50 ); -mt76_set (dev,MT_WFSYS_SW_RST_B ,WFSYS_SW_RST_B ); - -if (!__mt76_poll_msec (&dev->mt76,MT_WFSYS_SW_RST_B , -WFSYS_SW_INIT_DONE ,WFSYS_SW_INIT_DONE ,500 )) -return -ETIMEDOUT ; - -return 0 ; -} -int mt7921_wpdma_reset (struct mt792x_dev *dev,bool force) {int i, err;
@@ -182,7 +117,7 @@ int mt7921_wpdma_reset(struct mt792x_dev *dev, bool force)mt76_queue_rx_cleanup (dev, &dev->mt76.q_rx[i]);if (force) { - err =mt7921_wfsys_reset (dev); + err =mt792x_wfsys_reset (dev,MT_WFSYS_SW_RST_B );if (err)return err; }
@@ -202,7 +137,7 @@ int mt7921_wpdma_reinit_cond(struct mt792x_dev *dev)int err;/* check if the wpdma must be reinitialized */ -if (mt7921_dma_need_reinit (dev)) { +if (mt792x_dma_need_reinit (dev)) {/* disable interrutpts */ mt76_wr (dev,MT_WFDMA0_HOST_INT_ENA ,0 );mt76_wr (dev,MT_PCIE_MAC_INT_ENABLE ,0x0 );
@@ -227,7 +162,7 @@ int mt7921_dma_init(struct mt792x_dev *dev)mt76_dma_attach (&dev->mt76); - ret =mt7921_dma_disable (dev, true); + ret =mt792x_dma_disable (dev, true);if (ret)return ret;
@@ -275,7 +210,7 @@ int mt7921_dma_init(struct mt792x_dev *dev)if (ret)return ret; - ret =mt76_init_queues (dev, mt7921_poll_rx); + ret =mt76_init_queues (dev, mt792x_poll_rx);if (ret <0 )return ret;
@@ -285,30 +220,3 @@ int mt7921_dma_init(struct mt792x_dev *dev)return mt7921_dma_enable (dev); } - -void mt7921_dma_cleanup (struct mt792x_dev *dev) -{ -/* disable */ -mt76_clear (dev,MT_WFDMA0_GLO_CFG , -MT_WFDMA0_GLO_CFG_TX_DMA_EN | -MT_WFDMA0_GLO_CFG_RX_DMA_EN | -MT_WFDMA0_GLO_CFG_CSR_DISP_BASE_PTR_CHAIN_EN | -MT_WFDMA0_GLO_CFG_OMIT_TX_INFO | -MT_WFDMA0_GLO_CFG_OMIT_RX_INFO | -MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2 ); - -mt76_poll_msec_tick (dev,MT_WFDMA0_GLO_CFG , -MT_WFDMA0_GLO_CFG_TX_DMA_BUSY | -MT_WFDMA0_GLO_CFG_RX_DMA_BUSY ,0 ,100 ,1 ); - -/* reset */ -mt76_clear (dev,MT_WFDMA0_RST , -MT_WFDMA0_RST_DMASHDL_ALL_RST | -MT_WFDMA0_RST_LOGIC_RST ); - -mt76_set (dev,MT_WFDMA0_RST , -MT_WFDMA0_RST_DMASHDL_ALL_RST | -MT_WFDMA0_RST_LOGIC_RST ); - -mt76_dma_cleanup (&dev->mt76); -}
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -7
@@ -208,7 +208,6 @@ void mt7921_unregister_device(struct mt792x_dev *dev);int mt7921_dma_init (struct mt792x_dev *dev);int mt7921_wpdma_reset (struct mt792x_dev *dev,bool force);int mt7921_wpdma_reinit_cond (struct mt792x_dev *dev); -void mt7921_dma_cleanup (struct mt792x_dev *dev);int mt7921_run_firmware (struct mt792x_dev *dev);int mt7921_mcu_set_bss_pm (struct mt792x_dev *dev,struct ieee80211_vif *vif,bool enable);
@@ -262,11 +261,6 @@ mt7921_l1_rmw(struct mt792x_dev *dev, u32 addr, u32 mask, u32 val)#define mt7921_l1_set (dev, addr, val) mt7921_l1_rmw(dev, addr, 0, val)#define mt7921_l1_clear (dev, addr, val) mt7921_l1_rmw(dev, addr, val, 0) -static inline bool mt7921_dma_need_reinit (struct mt792x_dev *dev) -{ -return !mt76_get_field (dev,MT_WFDMA_DUMMY_CR ,MT_WFDMA_NEED_REINIT ); -} -static inline void mt7921_skb_add_usb_sdio_hdr (struct mt792x_dev *dev,struct sk_buff *skb,int type)
@@ -319,7 +313,6 @@ int mt7921_mcu_fw_pmctrl(struct mt792x_dev *dev);void mt7921_pm_wake_work (struct work_struct *work);void mt7921_pm_power_save_work (struct work_struct *work);void mt7921_coredump_work (struct work_struct *work); -int mt7921_wfsys_reset (struct mt792x_dev *dev);int mt7921_get_txpwr_info (struct mt792x_dev *dev,struct mt7921_txpwr *txpwr);int mt7921_testmode_cmd (struct ieee80211_hw *hw,struct ieee80211_vif *vif,void *data,int len);
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +3 -3
@@ -117,8 +117,8 @@ static void mt7921e_unregister_device(struct mt792x_dev *dev)mt76_connac2_tx_token_put (&dev->mt76);__mt7921_mcu_drv_pmctrl (dev); -mt7921_dma_cleanup (dev); -mt7921_wfsys_reset (dev); +mt792x_dma_cleanup (dev); +mt792x_wfsys_reset (dev,MT_WFSYS_SW_RST_B );skb_queue_purge (&dev->mt76.mcu.res_q);tasklet_disable (&dev->mt76.irq_tasklet);
@@ -337,7 +337,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev, (mt7921_l1_rr (dev,MT_HW_REV ) &0xff );dev_info (mdev->dev,"ASIC revision: %04x\n" , mdev->rev); - ret =mt7921_wfsys_reset (dev); + ret =mt792x_wfsys_reset (dev,MT_WFSYS_SW_RST_B );if (ret) goto err_free_dev;
drivers/net/wireless/mediatek/mt76/mt7921/regs.h +0 -2
@@ -87,8 +87,6 @@#define MT_HIF_REMAP_BASE_L1 0x40000#define MT_WFSYS_SW_RST_B 0x18000140 -#define WFSYS_SW_RST_B BIT(0) -#define WFSYS_SW_INIT_DONE BIT(4)#define MT_WTBLON_TOP_WDUCR MT_WTBLON_TOP(0x200)#define MT_WTBLON_TOP_WDUCR_GROUP GENMASK(2, 0)
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +1 -1
@@ -349,7 +349,7 @@ static int mt7921u_resume(struct usb_interface *intf)msleep (20 ); } -if (reinit ||mt7921_dma_need_reinit (dev)) { +if (reinit ||mt792x_dma_need_reinit (dev)) { err =mt7921u_dma_init (dev, true);if (err) goto failed;
drivers/net/wireless/mediatek/mt76/mt792x.h +10 -0
@@ -8,6 +8,7 @@#include <linux/ktime.h> #include "mt76_connac_mcu.h" +#include "mt792x_regs.h" #define MT792x_MAX_INTERFACES 4#define MT792x_WTBL_SIZE 20
@@ -169,6 +170,11 @@ mt792x_get_status_freq_info(struct mt76_rx_status *status, u8 chfreq) status->freq =ieee80211_channel_to_frequency (chfreq, status->band); } +static inline bool mt792x_dma_need_reinit (struct mt792x_dev *dev) +{ +return !mt76_get_field (dev,MT_WFDMA_DUMMY_CR ,MT_WFDMA_NEED_REINIT ); +} +#define mt792x_mutex_acquire (dev) \ mt76_connac_mutex_acquire(&(dev)->mt76, &(dev)->pm)#define mt792x_mutex_release (dev) \
@@ -219,5 +225,9 @@ void mt792x_sta_statistics(struct ieee80211_hw *hw,struct ieee80211_sta *sta, struct station_info *sinfo);void mt792x_set_coverage_class (struct ieee80211_hw *hw,s16 coverage_class); +void mt792x_dma_cleanup (struct mt792x_dev *dev); +int mt792x_dma_disable (struct mt792x_dev *dev,bool force); +int mt792x_poll_rx (struct napi_struct *napi,int budget); +int mt792x_wfsys_reset (struct mt792x_dev *dev,u32 addr);#endif /* __MT7925_H */
drivers/net/wireless/mediatek/mt76/mt792x_core.c +97 -1
109 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt792x_regs.h +3 -0
@@ -454,4 +454,7 @@#define MT_WF_SW_SER_TRIGGER_SUSPEND BIT(6)#define MT_WF_SW_SER_DONE_SUSPEND BIT(7) +#define WFSYS_SW_RST_B BIT(0) +#define WFSYS_SW_INIT_DONE BIT(4) +#endif /* __MT792X_REGS_H */
Signature · 1 line
2.18.0
PATCH 14/16 wifi: mt76: mt7921: move debugfs shared code in mt792x-lib module
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
Reduce duplicated code moving debugfs shared code in mt792x-lib module.
--- drivers/net/wireless/mediatek/mt76/Makefile | 3 +- .../wireless/mediatek/mt76/mt7921/debugfs.c | 178 +----------------- drivers/net/wireless/mediatek/mt76/mt792x.h | 6 + .../wireless/mediatek/mt76/mt792x_debugfs.c | 168 +++++++++++++++++ 4 files changed, 183 insertions(+), 172 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/mt792x_debugfs.c
drivers/net/wireless/mediatek/mt76/Makefile +2 -1
@@ -31,7 +31,8 @@ mt76x02-usb-y := mt76x02_usb_mcu.o mt76x02_usb_core.o mt76-connac-lib-y := mt76_connac_mcu.o mt76_connac_mac.o mt76_connac3_mac.o -mt792x-lib-y := mt792x_core.o mt792x_mac.o mt792x_trace.o +mt792x-lib-y := mt792x_core.o mt792x_mac.o mt792x_trace.o \ + mt792x_debugfs.o obj-$(CONFIG_MT76x0_COMMON) += mt76x0/ obj-$(CONFIG_MT76x2_COMMON) += mt76x2/
drivers/net/wireless/mediatek/mt76/mt7921/debugfs.c +7 -171
209 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt792x.h +6 -0
@@ -229,5 +229,11 @@ void mt792x_dma_cleanup(struct mt792x_dev *dev);int mt792x_dma_disable (struct mt792x_dev *dev,bool force);int mt792x_poll_rx (struct napi_struct *napi,int budget);int mt792x_wfsys_reset (struct mt792x_dev *dev,u32 addr); +int mt792x_tx_stats_show (struct seq_file *file,void *data); +int mt792x_queues_acq (struct seq_file *s,void *data); +int mt792x_queues_read (struct seq_file *s,void *data); +int mt792x_pm_stats (struct seq_file *s,void *data); +int mt792x_pm_idle_timeout_set (void *data,u64 val); +int mt792x_pm_idle_timeout_get (void *data,u64 *val);#endif /* __MT7925_H */
drivers/net/wireless/mediatek/mt76/mt792x_debugfs.c new file +168 -0
168 lines not on this page · raw message
Signature · 1 line
2.18.0
PATCH 15/16 wifi: mt76: mt7921: move init shared code in mt792x-lib module
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
Reduce duplicated code moving init shared code in mt792x-lib module.
--- .../net/wireless/mediatek/mt76/mt7921/init.c | 254 +----------------- .../wireless/mediatek/mt76/mt7921/mt7921.h | 5 - .../net/wireless/mediatek/mt76/mt7921/pci.c | 4 +- .../net/wireless/mediatek/mt76/mt7921/sdio.c | 4 +- .../net/wireless/mediatek/mt76/mt7921/usb.c | 4 +- drivers/net/wireless/mediatek/mt76/mt792x.h | 22 ++ .../net/wireless/mediatek/mt76/mt792x_core.c | 227 ++++++++++++++++ .../net/wireless/mediatek/mt76/mt792x_mac.c | 29 ++ 8 files changed, 288 insertions(+), 261 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/init.c +4 -250
@@ -10,50 +10,6 @@#include "../mt76_connac2_mac.h" #include "mcu.h" -static const struct ieee80211_iface_limit if_limits[] = { - { - .max = MT792x_MAX_INTERFACES, - .types =BIT (NL80211_IFTYPE_STATION ) - }, - { - .max =1 , - .types =BIT (NL80211_IFTYPE_AP ) - } -}; - -static const struct ieee80211_iface_combination if_comb[] = { - { - .limits = if_limits, - .n_limits =ARRAY_SIZE (if_limits), - .max_interfaces = MT792x_MAX_INTERFACES, - .num_different_channels =1 , - .beacon_int_infra_match = true, - }, -}; - -static const struct ieee80211_iface_limit if_limits_chanctx[] = { - { - .max =2 , - .types =BIT (NL80211_IFTYPE_STATION ) | -BIT (NL80211_IFTYPE_P2P_CLIENT ) - }, - { - .max =1 , - .types =BIT (NL80211_IFTYPE_AP ) | -BIT (NL80211_IFTYPE_P2P_GO ) - } -}; - -static const struct ieee80211_iface_combination if_comb_chanctx[] = { - { - .limits = if_limits_chanctx, - .n_limits =ARRAY_SIZE (if_limits_chanctx), - .max_interfaces =2 , - .num_different_channels =2 , - .beacon_int_infra_match = false, - } -}; -static ssize_t mt7921_thermal_temp_show (struct device *dev,struct device_attribute *attr,char *buf)
@@ -123,192 +79,6 @@ mt7921_regd_notifier(struct wiphy *wiphy,mt792x_mutex_release (dev); } -static int -mt7921_init_wiphy (struct ieee80211_hw *hw) -{ -struct mt792x_phy *phy =mt792x_hw_phy (hw); -struct mt792x_dev *dev = phy->dev; -struct wiphy *wiphy = hw->wiphy; - - hw->queues =4 ; - hw->max_rx_aggregation_subframes =IEEE80211_MAX_AMPDU_BUF_HE ; - hw->max_tx_aggregation_subframes =IEEE80211_MAX_AMPDU_BUF_HE ; - hw->netdev_features =NETIF_F_RXCSUM ; - - hw->radiotap_timestamp.units_pos = -IEEE80211_RADIOTAP_TIMESTAMP_UNIT_US ; - - phy->slottime =9 ; - - hw->sta_data_size =sizeof (struct mt792x_sta ); - hw->vif_data_size =sizeof (struct mt792x_vif ); - -if (dev->fw_features &MT7921_FW_CAP_CNM ) { - wiphy->flags |=WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL ; - wiphy->iface_combinations = if_comb_chanctx; - wiphy->n_iface_combinations =ARRAY_SIZE (if_comb_chanctx); - }else { - wiphy->flags &= ~WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL ; - wiphy->iface_combinations = if_comb; - wiphy->n_iface_combinations =ARRAY_SIZE (if_comb); - } - wiphy->flags &= ~(WIPHY_FLAG_IBSS_RSN |WIPHY_FLAG_4ADDR_AP | -WIPHY_FLAG_4ADDR_STATION ); - wiphy->interface_modes =BIT (NL80211_IFTYPE_STATION ) | -BIT (NL80211_IFTYPE_AP ) | -BIT (NL80211_IFTYPE_P2P_CLIENT ) | -BIT (NL80211_IFTYPE_P2P_GO ); - wiphy->max_remain_on_channel_duration =5000 ; - wiphy->max_scan_ie_len =MT76_CONNAC_SCAN_IE_LEN ; - wiphy->max_scan_ssids =4 ; - wiphy->max_sched_scan_plan_interval = -MT76_CONNAC_MAX_TIME_SCHED_SCAN_INTERVAL ; - wiphy->max_sched_scan_ie_len =IEEE80211_MAX_DATA_LEN ; - wiphy->max_sched_scan_ssids =MT76_CONNAC_MAX_SCHED_SCAN_SSID ; - wiphy->max_match_sets =MT76_CONNAC_MAX_SCAN_MATCH ; - wiphy->max_sched_scan_reqs =1 ; - wiphy->flags |=WIPHY_FLAG_HAS_CHANNEL_SWITCH | -WIPHY_FLAG_SPLIT_SCAN_6GHZ ; - wiphy->reg_notifier = mt7921_regd_notifier; - - wiphy->features |=NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR | -NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR ; -wiphy_ext_feature_set (wiphy,NL80211_EXT_FEATURE_SET_SCAN_DWELL ); -wiphy_ext_feature_set (wiphy,NL80211_EXT_FEATURE_BEACON_RATE_LEGACY ); -wiphy_ext_feature_set (wiphy,NL80211_EXT_FEATURE_BEACON_RATE_HT ); -wiphy_ext_feature_set (wiphy,NL80211_EXT_FEATURE_BEACON_RATE_VHT ); -wiphy_ext_feature_set (wiphy,NL80211_EXT_FEATURE_BEACON_RATE_HE ); -wiphy_ext_feature_set (wiphy,NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT ); -wiphy_ext_feature_set (wiphy,NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 ); - -ieee80211_hw_set (hw,SINGLE_SCAN_ON_ALL_BANDS ); -ieee80211_hw_set (hw,HAS_RATE_CONTROL ); -ieee80211_hw_set (hw,SUPPORTS_TX_ENCAP_OFFLOAD ); -ieee80211_hw_set (hw,SUPPORTS_RX_DECAP_OFFLOAD ); -ieee80211_hw_set (hw,WANT_MONITOR_VIF ); -ieee80211_hw_set (hw,SUPPORTS_PS ); -ieee80211_hw_set (hw,SUPPORTS_DYNAMIC_PS ); -ieee80211_hw_set (hw,SUPPORTS_VHT_EXT_NSS_BW ); -ieee80211_hw_set (hw,CONNECTION_MONITOR ); - -if (dev->pm.enable) -ieee80211_hw_set (hw,CONNECTION_MONITOR ); - - hw->max_tx_fragments =4 ; - -return 0 ; -} - -static void -mt7921_mac_init_band (struct mt792x_dev *dev,u8 band) -{ -u32 mask, set; - -mt76_rmw_field (dev,MT_TMAC_CTCR0 (band), -MT_TMAC_CTCR0_INS_DDLMT_REFTIME ,0x3f ); -mt76_set (dev,MT_TMAC_CTCR0 (band), -MT_TMAC_CTCR0_INS_DDLMT_VHT_SMPDU_EN | -MT_TMAC_CTCR0_INS_DDLMT_EN ); - -mt76_set (dev,MT_WF_RMAC_MIB_TIME0 (band),MT_WF_RMAC_MIB_RXTIME_EN ); -mt76_set (dev,MT_WF_RMAC_MIB_AIRTIME0 (band),MT_WF_RMAC_MIB_RXTIME_EN ); - -/* enable MIB tx-rx time reporting */ -mt76_set (dev,MT_MIB_SCR1 (band),MT_MIB_TXDUR_EN ); -mt76_set (dev,MT_MIB_SCR1 (band),MT_MIB_RXDUR_EN ); - -mt76_rmw_field (dev,MT_DMA_DCR0 (band),MT_DMA_DCR0_MAX_RX_LEN ,1536 ); -/* disable rx rate report by default due to hw issues */ -mt76_clear (dev,MT_DMA_DCR0 (band),MT_DMA_DCR0_RXD_G5_EN ); - -/* filter out non-resp frames and get instantaneous signal reporting */ - mask =MT_WTBLOFF_TOP_RSCR_RCPI_MODE |MT_WTBLOFF_TOP_RSCR_RCPI_PARAM ; - set =FIELD_PREP (MT_WTBLOFF_TOP_RSCR_RCPI_MODE ,0 ) | -FIELD_PREP (MT_WTBLOFF_TOP_RSCR_RCPI_PARAM ,0x3 ); -mt76_rmw (dev,MT_WTBLOFF_TOP_RSCR (band), mask, set); -} - -static u8 -mt7921_get_offload_capability (struct device *dev,const char *fw_wm) -{ -const struct mt76_connac2_fw_trailer *hdr; -struct mt7921_realease_info *rel_info; -const struct firmware *fw; -int ret, i, offset =0 ; -const u8 *data, *end; -u8 offload_caps =0 ; - - ret =request_firmware (&fw, fw_wm, dev); -if (ret) -return ret; - -if (!fw || !fw->data || fw->size <sizeof (*hdr)) { -dev_err (dev,"Invalid firmware\n" ); - goto out; - } - - data = fw->data; - hdr = (const void *)(fw->data + fw->size -sizeof (*hdr)); - -for (i =0 ; i < hdr->n_region; i++) { -const struct mt76_connac2_fw_region *region; - - region = (const void *)((const u8 *)hdr - - (hdr->n_region - i) *sizeof (*region)); - offset +=le32_to_cpu (region->len); - } - - data += offset +16 ; - rel_info = (struct mt7921_realease_info *)data; - data +=sizeof (*rel_info); - end = data +le16_to_cpu (rel_info->len); - -while (data < end) { - rel_info = (struct mt7921_realease_info *)data; - data +=sizeof (*rel_info); - -if (rel_info->tag ==MT7921_FW_TAG_FEATURE ) { -struct mt7921_fw_features *features; - - features = (struct mt7921_fw_features *)data; - offload_caps = features->data; -break ; - } - - data +=le16_to_cpu (rel_info->len) + rel_info->pad_len; - } - -out: -release_firmware (fw); - -return offload_caps; -} - -struct ieee80211_ops * -mt7921_get_mac80211_ops (struct device *dev,void *drv_data,u8 *fw_features) -{ -struct ieee80211_ops *ops; - - ops =devm_kmemdup (dev, &mt7921_ops,sizeof (mt7921_ops),GFP_KERNEL ); -if (!ops) -return NULL ; - - *fw_features =mt7921_get_offload_capability (dev, drv_data); -if (!(*fw_features &MT7921_FW_CAP_CNM )) { - ops->remain_on_channel =NULL ; - ops->cancel_remain_on_channel =NULL ; - ops->add_chanctx =NULL ; - ops->remove_chanctx =NULL ; - ops->change_chanctx =NULL ; - ops->assign_vif_chanctx =NULL ; - ops->unassign_vif_chanctx =NULL ; - ops->mgd_prepare_tx =NULL ; - ops->mgd_complete_tx =NULL ; - } -return ops; -} -EXPORT_SYMBOL_GPL (mt7921_get_mac80211_ops); -int mt7921_mac_init (struct mt792x_dev *dev) {int i;
@@ -323,7 +93,7 @@ int mt7921_mac_init(struct mt792x_dev *dev)mt7921_mac_wtbl_update (dev, i,MT_WTBL_UPDATE_ADM_COUNT_CLEAR );for (i =0 ; i <2 ; i++) -mt7921_mac_init_band (dev, i); +mt792x_mac_init_band (dev, i);return mt76_connac_mcu_set_rts_thresh (&dev->mt76,0x92b ,0 ); }
@@ -374,23 +144,6 @@ static int mt7921_init_hardware(struct mt792x_dev *dev)return 0 ; } -static int mt7921_init_wcid (struct mt792x_dev *dev) -{ -int idx; - -/* Beacon and mgmt frames should occupy wcid 0 */ - idx =mt76_wcid_alloc (dev->mt76.wcid_mask, MT792x_WTBL_STA -1 ); -if (idx) -return -ENOSPC ; - - dev->mt76.global_wcid.idx = idx; - dev->mt76.global_wcid.hw_key_idx =-1 ; - dev->mt76.global_wcid.tx_info |=MT_WCID_TX_INFO_SET ; -rcu_assign_pointer (dev->mt76.wcid[idx], &dev->mt76.global_wcid); - -return 0 ; -} -static void mt7921_init_work (struct work_struct *work) { struct mt792x_dev *dev = container_of(work, struct mt792x_dev,
@@ -479,14 +232,15 @@ int mt7921_register_device(struct mt792x_dev *dev)mt7921_init_acpi_sar (dev); - ret =mt7921_init_wcid (dev); + ret =mt792x_init_wcid (dev);if (ret)return ret; - ret =mt7921_init_wiphy (hw); + ret =mt792x_init_wiphy (hw);if (ret)return ret; + hw->wiphy->reg_notifier = mt7921_regd_notifier; dev->mphy.sband_2g.sband.ht_cap.cap |=IEEE80211_HT_CAP_LDPC_CODING |IEEE80211_HT_CAP_MAX_AMSDU ;
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -5
@@ -22,9 +22,6 @@#define MT7921_MCU_INIT_RETRY_COUNT 10#define MT7921_WFSYS_INIT_RETRY_COUNT 2 -#define MT7921_FW_TAG_FEATURE 4 -#define MT7921_FW_CAP_CNM BIT(7) -#define MT7921_FIRMWARE_WM "mediatek/WIFI_RAM_CODE_MT7961_1.bin"#define MT7921_ROM_PATCH "mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin"
@@ -400,6 +397,4 @@ int mt7921_mcu_set_roc(struct mt792x_phy *phy, struct mt792x_vif *vif, enum mt7921_roc_req type, u8 token_id);int mt7921_mcu_abort_roc (struct mt792x_phy *phy,struct mt792x_vif *vif,u8 token_id); -struct ieee80211_ops *mt7921_get_mac80211_ops (struct device *dev, -void *drv_data,u8 *fw_features);#endif
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +2 -2
@@ -288,8 +288,8 @@ static int mt7921_pci_probe(struct pci_dev *pdev,if (mt7921_disable_aspm)mt76_pci_disable_aspm (pdev); - ops =mt7921_get_mac80211_ops (&pdev->dev, (void *)id->driver_data, - &features); + ops =mt792x_get_mac80211_ops (&pdev->dev, &mt7921_ops, + (void *)id->driver_data, &features);if (!ops) { ret = -ENOMEM ; goto err_free_pci_vec;
drivers/net/wireless/mediatek/mt76/mt7921/sdio.c +2 -2
@@ -127,8 +127,8 @@ static int mt7921s_probe(struct sdio_func *func,u8 features;int ret; - ops =mt7921_get_mac80211_ops (&func->dev, (void *)id->driver_data, - &features); + ops =mt792x_get_mac80211_ops (&func->dev, &mt7921_ops, + (void *)id->driver_data, &features);if (!ops)return -ENOMEM ;
drivers/net/wireless/mediatek/mt76/mt7921/usb.c +2 -2
@@ -212,8 +212,8 @@ static int mt7921u_probe(struct usb_interface *usb_intf,u8 features;int ret; - ops =mt7921_get_mac80211_ops (&usb_intf->dev, (void *)id->driver_info, - &features); + ops =mt792x_get_mac80211_ops (&usb_intf->dev, &mt7921_ops, + (void *)id->driver_info, &features);if (!ops)return -ENOMEM ;
drivers/net/wireless/mediatek/mt76/mt792x.h +22 -0
@@ -18,6 +18,9 @@#define MT792x_CFEND_RATE_DEFAULT 0x49/* OFDM 24M */ #define MT792x_CFEND_RATE_11B 0x03/* 11B LP, 11M */ +#define MT792x_FW_TAG_FEATURE 4 +#define MT792x_FW_CAP_CNM BIT(7) +/* NOTE: used to map mt76_rates. idx may change if firmware expands table */ #define MT792x_BASIC_RATES_TBL 11
@@ -26,6 +29,18 @@struct mt792x_vif ;struct mt792x_sta ; +struct mt792x_realease_info { +__le16 len; +u8 pad_len; +u8 tag; +} __packed; + +struct mt792x_fw_features { +u8 segment; +u8 data; +u8 rsv[14 ]; +} __packed; +enum { MT792x_CLC_POWER, MT792x_CLC_CHAN,
@@ -183,6 +198,7 @@ static inline bool mt792x_dma_need_reinit(struct mt792x_dev *dev)void mt792x_reset (struct mt76_dev *mdev);void mt792x_update_channel (struct mt76_phy *mphy);void mt792x_mac_reset_counters (struct mt792x_phy *phy); +void mt792x_mac_init_band (struct mt792x_dev *dev,u8 band);void mt792x_mac_assoc_rssi (struct mt792x_dev *dev,struct sk_buff *skb);struct mt76_wcid *mt792x_rx_get_wcid (struct mt792x_dev *dev,u16 idx,bool unicast);
@@ -235,5 +251,11 @@ int mt792x_queues_read(struct seq_file *s, void *data);int mt792x_pm_stats (struct seq_file *s,void *data);int mt792x_pm_idle_timeout_set (void *data,u64 val);int mt792x_pm_idle_timeout_get (void *data,u64 *val); +int mt792x_init_wiphy (struct ieee80211_hw *hw); +struct ieee80211_ops * +mt792x_get_mac80211_ops (struct device *dev, +const struct ieee80211_ops *mac80211_ops, +void *drv_data,u8 *fw_features); +int mt792x_init_wcid (struct mt792x_dev *dev);#endif /* __MT7925_H */
drivers/net/wireless/mediatek/mt76/mt792x_core.c +227 -0
242 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt792x_mac.c +29 -0
@@ -282,3 +282,32 @@ void mt792x_reset(struct mt76_dev *mdev)queue_work (dev->mt76.wq, &dev->reset_work); }EXPORT_SYMBOL_GPL (mt792x_reset); + +void mt792x_mac_init_band (struct mt792x_dev *dev,u8 band) +{ +u32 mask, set; + +mt76_rmw_field (dev,MT_TMAC_CTCR0 (band), +MT_TMAC_CTCR0_INS_DDLMT_REFTIME ,0x3f ); +mt76_set (dev,MT_TMAC_CTCR0 (band), +MT_TMAC_CTCR0_INS_DDLMT_VHT_SMPDU_EN | +MT_TMAC_CTCR0_INS_DDLMT_EN ); + +mt76_set (dev,MT_WF_RMAC_MIB_TIME0 (band),MT_WF_RMAC_MIB_RXTIME_EN ); +mt76_set (dev,MT_WF_RMAC_MIB_AIRTIME0 (band),MT_WF_RMAC_MIB_RXTIME_EN ); + +/* enable MIB tx-rx time reporting */ +mt76_set (dev,MT_MIB_SCR1 (band),MT_MIB_TXDUR_EN ); +mt76_set (dev,MT_MIB_SCR1 (band),MT_MIB_RXDUR_EN ); + +mt76_rmw_field (dev,MT_DMA_DCR0 (band),MT_DMA_DCR0_MAX_RX_LEN ,1536 ); +/* disable rx rate report by default due to hw issues */ +mt76_clear (dev,MT_DMA_DCR0 (band),MT_DMA_DCR0_RXD_G5_EN ); + +/* filter out non-resp frames and get instantaneous signal reporting */ + mask =MT_WTBLOFF_TOP_RSCR_RCPI_MODE |MT_WTBLOFF_TOP_RSCR_RCPI_PARAM ; + set =FIELD_PREP (MT_WTBLOFF_TOP_RSCR_RCPI_MODE ,0 ) | +FIELD_PREP (MT_WTBLOFF_TOP_RSCR_RCPI_PARAM ,0x3 ); +mt76_rmw (dev,MT_WTBLOFF_TOP_RSCR (band), mask, set); +} +EXPORT_SYMBOL_GPL (mt792x_mac_init_band);
Signature · 1 line
2.18.0
PATCH 16/16 wifi: mt76: mt792x: introduce mt792x_irq_map
In reply to Deren WuFrom: Lorenzo Bianconi <[email protected]>
mt792x_irq_map will be use to share the irq code shared between mt7921 and mt7925
--- .../net/wireless/mediatek/mt76/mt7921/dma.c | 9 ++-- .../net/wireless/mediatek/mt76/mt7921/pci.c | 53 ++++++++++++------- .../wireless/mediatek/mt76/mt7921/pci_mac.c | 8 +-- .../net/wireless/mediatek/mt76/mt7921/regs.h | 17 ------ drivers/net/wireless/mediatek/mt76/mt792x.h | 14 +++++ .../net/wireless/mediatek/mt76/mt792x_regs.h | 19 +++++++ 6 files changed, 77 insertions(+), 43 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/dma.c +5 -4
@@ -19,7 +19,8 @@ static int mt7921_poll_tx(struct napi_struct *napi, int budget)mt76_connac_tx_cleanup (&dev->mt76);if (napi_complete (napi)) -mt76_connac_irq_enable (&dev->mt76,MT_INT_TX_DONE_ALL ); +mt76_connac_irq_enable (&dev->mt76, + dev->irq_map->tx.all_complete_mask);mt76_connac_pm_unref (&dev->mphy, &dev->pm);return 0 ;
@@ -72,8 +73,8 @@ static int mt7921_dma_enable(struct mt792x_dev *dev)/* enable interrupts for TX/RX rings */ mt76_connac_irq_enable (&dev->mt76, -MT_INT_RX_DONE_ALL |MT_INT_TX_DONE_ALL | -MT_INT_MCU_CMD ); + dev->irq_map->tx.all_complete_mask | +MT_INT_RX_DONE_ALL |MT_INT_MCU_CMD );mt76_set (dev,MT_MCU2HOST_SW_INT_ENA ,MT_MCU_CMD_WAKE_RX_PCIE );return 0 ;
@@ -139,7 +140,7 @@ int mt7921_wpdma_reinit_cond(struct mt792x_dev *dev)/* check if the wpdma must be reinitialized */ if (mt792x_dma_need_reinit (dev)) {/* disable interrutpts */ -mt76_wr (dev,MT_WFDMA0_HOST_INT_ENA ,0 ); +mt76_wr (dev, dev->irq_map->host_irq_enable,0 );mt76_wr (dev,MT_PCIE_MAC_INT_ENABLE ,0x0 ); err =mt7921_wpdma_reset (dev, false);
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +35 -18
128 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +4 -4
@@ -61,7 +61,7 @@ int mt7921e_mac_reset(struct mt792x_dev *dev)mt76_connac_free_pending_tx_skbs (&dev->pm,NULL ); -mt76_wr (dev,MT_WFDMA0_HOST_INT_ENA ,0 ); +mt76_wr (dev, dev->irq_map->host_irq_enable,0 );mt76_wr (dev,MT_PCIE_MAC_INT_ENABLE ,0x0 );set_bit (MT76_RESET , &dev->mphy.state);
@@ -92,9 +92,9 @@ int mt7921e_mac_reset(struct mt792x_dev *dev) dev->fw_assert = false;clear_bit (MT76_MCU_RESET , &dev->mphy.state); -mt76_wr (dev,MT_WFDMA0_HOST_INT_ENA , -MT_INT_RX_DONE_ALL |MT_INT_TX_DONE_ALL | -MT_INT_MCU_CMD ); +mt76_wr (dev, dev->irq_map->host_irq_enable, + dev->irq_map->tx.all_complete_mask | +MT_INT_RX_DONE_ALL |MT_INT_MCU_CMD );mt76_wr (dev,MT_PCIE_MAC_INT_ENABLE ,0xff ); err =mt7921e_driver_own (dev);
drivers/net/wireless/mediatek/mt76/mt7921/regs.h +0 -17
@@ -29,18 +29,6 @@#define MT_MDP_TO_WM 1#define MT_WFDMA0_HOST_INT_ENA MT_WFDMA0(0x204) -#define HOST_RX_DONE_INT_ENA0 BIT(0) -#define HOST_RX_DONE_INT_ENA1 BIT(1) -#define HOST_RX_DONE_INT_ENA2 BIT(2) -#define HOST_RX_DONE_INT_ENA3 BIT(3) -#define HOST_TX_DONE_INT_ENA0 BIT(4) -#define HOST_TX_DONE_INT_ENA1 BIT(5) -#define HOST_TX_DONE_INT_ENA2 BIT(6) -#define HOST_TX_DONE_INT_ENA3 BIT(7) -#define HOST_TX_DONE_INT_ENA4 BIT(8) -#define HOST_TX_DONE_INT_ENA5 BIT(9) -#define HOST_TX_DONE_INT_ENA6 BIT(10) -#define HOST_TX_DONE_INT_ENA7 BIT(11)#define HOST_TX_DONE_INT_ENA8 BIT(12)#define HOST_TX_DONE_INT_ENA9 BIT(13)#define HOST_TX_DONE_INT_ENA10 BIT(14)
@@ -48,14 +36,10 @@#define HOST_TX_DONE_INT_ENA12 BIT(16)#define HOST_TX_DONE_INT_ENA13 BIT(17)#define HOST_TX_DONE_INT_ENA14 BIT(18) -#define HOST_RX_COHERENT_EN BIT(20) -#define HOST_TX_COHERENT_EN BIT(21)#define HOST_RX_DONE_INT_ENA4 BIT(22)#define HOST_RX_DONE_INT_ENA5 BIT(23)#define HOST_TX_DONE_INT_ENA16 BIT(26)#define HOST_TX_DONE_INT_ENA17 BIT(27) -#define MCU2HOST_SW_INT_ENA BIT(29) -#define HOST_TX_DONE_INT_ENA18 BIT(30)/* WFDMA interrupt */ #define MT_INT_RX_DONE_DATA HOST_RX_DONE_INT_ENA2
@@ -67,7 +51,6 @@#define MT_INT_TX_DONE_MCU_WM HOST_TX_DONE_INT_ENA17#define MT_INT_TX_DONE_FWDL HOST_TX_DONE_INT_ENA16#define MT_INT_TX_DONE_BAND0 HOST_TX_DONE_INT_ENA0 -#define MT_INT_MCU_CMD MCU2HOST_SW_INT_ENA#define MT_INT_TX_DONE_MCU (MT_INT_TX_DONE_MCU_WM | \ MT_INT_TX_DONE_FWDL)
drivers/net/wireless/mediatek/mt76/mt792x.h +14 -0
@@ -114,6 +114,19 @@ struct mt792x_phy {bool roc_grant; }; +struct mt792x_irq_map { +u32 host_irq_enable; +struct { +u32 all_complete_mask; +u32 mcu_complete_mask; + } tx; +struct { +u32 data_complete_mask; +u32 wm_complete_mask; +u32 wm2_complete_mask; + } rx; +}; +struct mt792x_hif_ops {int (*init_reset)(struct mt792x_dev *dev);int (*reset)(struct mt792x_dev *dev);
@@ -145,6 +158,7 @@ struct mt792x_dev {struct mt76_connac_pm pm;struct mt76_connac_coredump coredump;const struct mt792x_hif_ops *hif_ops; +const struct mt792x_irq_map *irq_map;struct work_struct ipv6_ns_work;/* IPv6 addresses for WoWLAN */
drivers/net/wireless/mediatek/mt76/mt792x_regs.h +19 -0
@@ -301,6 +301,25 @@#define MT_WFDMA0_GLO_CFG_OMIT_TX_INFO BIT(28)#define MT_WFDMA0_GLO_CFG_CLK_GAT_DIS BIT(30) +#define HOST_RX_DONE_INT_ENA0 BIT(0) +#define HOST_RX_DONE_INT_ENA1 BIT(1) +#define HOST_RX_DONE_INT_ENA2 BIT(2) +#define HOST_RX_DONE_INT_ENA3 BIT(3) +#define HOST_TX_DONE_INT_ENA0 BIT(4) +#define HOST_TX_DONE_INT_ENA1 BIT(5) +#define HOST_TX_DONE_INT_ENA2 BIT(6) +#define HOST_TX_DONE_INT_ENA3 BIT(7) +#define HOST_TX_DONE_INT_ENA4 BIT(8) +#define HOST_TX_DONE_INT_ENA5 BIT(9) +#define HOST_TX_DONE_INT_ENA6 BIT(10) +#define HOST_TX_DONE_INT_ENA7 BIT(11) +#define HOST_RX_COHERENT_EN BIT(20) +#define HOST_TX_COHERENT_EN BIT(21) +#define MCU2HOST_SW_INT_ENA BIT(29) +#define HOST_TX_DONE_INT_ENA18 BIT(30) + +#define MT_INT_MCU_CMD MCU2HOST_SW_INT_ENA +#define MT_WFDMA0_RST_DTX_PTR MT_WFDMA0(0x20c)#define MT_WFDMA0_RST_DRX_PTR MT_WFDMA0(0x280)#define MT_WFDMA0_GLO_CFG_EXT0 MT_WFDMA0(0x2b0)
Signature · 1 line
2.18.0