move connac2 shared txwi code in connac module
Subsystems (2)
Lorenzo Bianconi
maintainercover move connac2 shared txwi code in connac module
This series allow reusing connac2 txwi code in mt7921 and mt7915 driver.
Lorenzo Bianconi (5):
mt76: mt7921: rely on mt76_dev in mt7921_mac_write_txwi signature
mt76: mt7915: rely on mt76_dev in mt7915_mac_write_txwi signature
mt76: connac: move mac connac2 defs in mt76_connac2_mac.h
mt76: connac: move connac2_mac_write_txwi in mt76_connac module
mt76: connac: move mt76_connac2_mac_add_txs_skb in connac module
.../net/wireless/mediatek/mt76/mt76_connac.h | 9 + .../wireless/mediatek/mt76/mt76_connac2_mac.h | 167 +++++++ .../wireless/mediatek/mt76/mt76_connac_mac.c | 406 ++++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mac.c | 386 +---------------- .../net/wireless/mediatek/mt76/mt7915/mac.h | 142 +----- .../net/wireless/mediatek/mt76/mt7915/mcu.c | 6 +- .../wireless/mediatek/mt76/mt7915/mt7915.h | 17 +- .../net/wireless/mediatek/mt76/mt7921/mac.c | 335 +-------------- .../net/wireless/mediatek/mt76/mt7921/mac.h | 123 +----- .../net/wireless/mediatek/mt76/mt7921/main.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 4 +- .../wireless/mediatek/mt76/mt7921/mt7921.h | 15 - .../wireless/mediatek/mt76/mt7921/pci_mac.c | 4 +- 13 files changed, 607 insertions(+), 1009 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h
Signature · 1 line
2.35.3
Lorenzo Bianconi
maintainerPATCH 1/5 mt76: mt7921: rely on mt76_dev in mt7921_mac_write_txwi signature
This is a preliminary patch to share txwi configuration code.
--- .../net/wireless/mediatek/mt76/mt7921/mac.c | 23 +++++++++---------- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 2 +- .../wireless/mediatek/mt76/mt7921/mt7921.h | 2 +- .../wireless/mediatek/mt76/mt7921/pci_mac.c | 2 +- 4 files changed, 14 insertions(+), 15 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +11 -12
@@ -809,8 +809,8 @@ mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb) }static void -mt7921_mac_write_txwi_8023 (struct mt7921_dev *dev,__le32 *txwi, -struct sk_buff *skb,struct mt76_wcid *wcid) +mt7921_mac_write_txwi_8023 (__le32 *txwi,struct sk_buff *skb, +struct mt76_wcid *wcid) {u8 tid = skb->priority &IEEE80211_QOS_CTL_TID_MASK ;u8 fc_type, fc_stype;
@@ -848,7 +848,7 @@ mt7921_mac_write_txwi_8023(struct mt7921_dev *dev, __le32 *txwi, }static void -mt7921_mac_write_txwi_80211 (struct mt7921_dev *dev,__le32 *txwi, +mt7921_mac_write_txwi_80211 (struct mt76_dev *dev,__le32 *txwi,struct sk_buff *skb,struct ieee80211_key_conf *key) {struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
@@ -920,7 +920,7 @@ mt7921_mac_write_txwi_80211(struct mt7921_dev *dev, __le32 *txwi, txwi[7 ] &= ~cpu_to_le32 (MT_TXD7_HW_AMSDU ); } -if (mt76_is_mmio (&dev->mt76)) { +if (mt76_is_mmio (dev)) { val =FIELD_PREP (MT_TXD7_TYPE , fc_type) |FIELD_PREP (MT_TXD7_SUB_TYPE , fc_stype); txwi[7 ] |=cpu_to_le32 (val);
@@ -931,17 +931,16 @@ mt7921_mac_write_txwi_80211(struct mt7921_dev *dev, __le32 *txwi, } } -void mt7921_mac_write_txwi (struct mt7921_dev *dev,__le32 *txwi, +void mt7921_mac_write_txwi (struct mt76_dev *dev,__le32 *txwi,struct sk_buff *skb,struct mt76_wcid *wcid,struct ieee80211_key_conf *key,int pid,bool beacon) {struct ieee80211_tx_info *info =IEEE80211_SKB_CB (skb);struct ieee80211_vif *vif = info->control.vif; -struct mt76_phy *mphy = &dev->mphy; +struct mt76_phy *mphy = &dev->phy;u8 p_fmt, q_idx, omac_idx =0 , wmm_idx =0 ; -bool is_mmio =mt76_is_mmio (&dev->mt76); -u32 sz_txd = is_mmio ?MT_TXD_SIZE :MT_SDIO_TXD_SIZE ; +u32 sz_txd =mt76_is_mmio (dev) ?MT_TXD_SIZE :MT_SDIO_TXD_SIZE ;bool is_8023 = info->flags &IEEE80211_TX_CTL_HW_80211_ENCAP ;u16 tx_count =15 ;u32 val;
@@ -957,10 +956,10 @@ void mt7921_mac_write_txwi(struct mt7921_dev *dev, __le32 *txwi, p_fmt =MT_TX_TYPE_FW ; q_idx =MT_LMAC_BCN0 ; }else if (skb_get_queue_mapping (skb) >=MT_TXQ_PSD ) { - p_fmt = is_mmio ?MT_TX_TYPE_CT :MT_TX_TYPE_SF ; + p_fmt =mt76_is_mmio (dev) ?MT_TX_TYPE_CT :MT_TX_TYPE_SF ; q_idx =MT_LMAC_ALTX0 ; }else { - p_fmt = is_mmio ?MT_TX_TYPE_CT :MT_TX_TYPE_SF ; + p_fmt =mt76_is_mmio (dev) ?MT_TX_TYPE_CT :MT_TX_TYPE_SF ; q_idx = wmm_idx *MT7921_MAX_WMM_SETS +mt76_connac_lmac_mapping (skb_get_queue_mapping (skb)); }
@@ -995,7 +994,7 @@ void mt7921_mac_write_txwi(struct mt7921_dev *dev, __le32 *txwi, txwi[7 ] = wcid->amsdu ?cpu_to_le32 (MT_TXD7_HW_AMSDU ) :0 ;if (is_8023) -mt7921_mac_write_txwi_8023 (dev, txwi, skb, wcid); +mt7921_mac_write_txwi_8023 (txwi, skb, wcid);else mt7921_mac_write_txwi_80211 (dev, txwi, skb, key);
@@ -1648,7 +1647,7 @@ mt7921_usb_sdio_write_txwi(struct mt7921_dev *dev, struct mt76_wcid *wcid,__le32 *txwi = (__le32 *)(skb->data -MT_SDIO_TXD_SIZE );memset (txwi,0 ,MT_SDIO_TXD_SIZE ); -mt7921_mac_write_txwi (dev, txwi, skb, wcid, key, pid, false); +mt7921_mac_write_txwi (&dev->mt76, txwi, skb, wcid, key, pid, false);skb_push (skb,MT_SDIO_TXD_SIZE ); }
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +1 -1
@@ -994,7 +994,7 @@ mt7921_mcu_uni_add_beacon_offload(struct mt7921_dev *dev,return -EINVAL ; } -mt7921_mac_write_txwi (dev, (__le32 *)(req.beacon_tlv.pkt), skb, +mt7921_mac_write_txwi (&dev->mt76, (__le32 *)(req.beacon_tlv.pkt), skb, wcid,NULL ,0 , true);memcpy (req.beacon_tlv.pkt +MT_TXD_SIZE , skb->data, skb->len); req.beacon_tlv.pkt_len =cpu_to_le16 (MT_TXD_SIZE + skb->len);
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +1 -1
@@ -427,7 +427,7 @@ int mt7921_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void *data, int len);int mt7921_testmode_dump (struct ieee80211_hw *hw,struct sk_buff *msg,struct netlink_callback *cb,void *data,int len); -void mt7921_mac_write_txwi (struct mt7921_dev *dev,__le32 *txwi, +void mt7921_mac_write_txwi (struct mt76_dev *dev,__le32 *txwi,struct sk_buff *skb,struct mt76_wcid *wcid,struct ieee80211_key_conf *key,int pid,bool beacon);
drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +1 -1
@@ -72,7 +72,7 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, } pid =mt76_tx_status_skb_add (mdev, wcid, tx_info->skb); -mt7921_mac_write_txwi (dev, txwi_ptr, tx_info->skb, wcid, key, +mt7921_mac_write_txwi (mdev, txwi_ptr, tx_info->skb, wcid, key, pid, false); txp = (struct mt7921_txp_common *)(txwi +MT_TXD_SIZE );
Signature · 1 line
2.35.3
Lorenzo Bianconi
maintainerPATCH 2/5 mt76: mt7915: rely on mt76_dev in mt7915_mac_write_txwi signature
In reply to Lorenzo BianconiThis is a preliminary patch to share txwi configuration code.
--- .../net/wireless/mediatek/mt76/mt7915/mac.c | 23 +++++++++---------- .../net/wireless/mediatek/mt76/mt7915/mcu.c | 4 ++-- .../wireless/mediatek/mt76/mt7915/mt7915.h | 2 +- 3 files changed, 14 insertions(+), 15 deletions(-)
drivers/net/wireless/mediatek/mt76/mt7915/mac.c +11 -12
@@ -1010,8 +1010,8 @@ mt7915_mac_write_txwi_tm(struct mt7915_phy *phy, __le32 *txwi, }static void -mt7915_mac_write_txwi_8023 (struct mt7915_dev *dev,__le32 *txwi, -struct sk_buff *skb,struct mt76_wcid *wcid) +mt7915_mac_write_txwi_8023 (__le32 *txwi,struct sk_buff *skb, +struct mt76_wcid *wcid) {u8 tid = skb->priority &IEEE80211_QOS_CTL_TID_MASK ;
@@ -1050,9 +1050,8 @@ mt7915_mac_write_txwi_8023(struct mt7915_dev *dev, __le32 *txwi, }static void -mt7915_mac_write_txwi_80211 (struct mt7915_dev *dev,__le32 *txwi, -struct sk_buff *skb,struct ieee80211_key_conf *key, -bool *mcast) +mt7915_mac_write_txwi_80211 (__le32 *txwi,struct sk_buff *skb, +struct ieee80211_key_conf *key,bool *mcast) {struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)skb->data;
@@ -1175,13 +1174,13 @@ mt7915_mac_tx_rate_val(struct mt76_phy *mphy, struct ieee80211_vif *vif,FIELD_PREP (MT_TX_RATE_MODE , mode); } -void mt7915_mac_write_txwi (struct mt7915_dev *dev,__le32 *txwi, +void mt7915_mac_write_txwi (struct mt76_dev *dev,__le32 *txwi,struct sk_buff *skb,struct mt76_wcid *wcid,int pid,struct ieee80211_key_conf *key,u32 changed) {struct ieee80211_tx_info *info =IEEE80211_SKB_CB (skb);struct ieee80211_vif *vif = info->control.vif; -struct mt76_phy *mphy = &dev->mphy; +struct mt76_phy *mphy = &dev->phy;bool ext_phy = info->hw_queue &MT_TX_HW_QUEUE_EXT_PHY ;u8 p_fmt, q_idx, omac_idx =0 , wmm_idx =0 , band_idx =0 ;bool is_8023 = info->flags &IEEE80211_TX_CTL_HW_80211_ENCAP ;
@@ -1201,8 +1200,8 @@ void mt7915_mac_write_txwi(struct mt7915_dev *dev, __le32 *txwi, band_idx = mvif->mt76.band_idx; } -if (ext_phy && dev->mt76.phy2) - mphy = dev->mt76.phy2; +if (ext_phy && dev->phy2) + mphy = dev->phy2;if (inband_disc) { p_fmt =MT_TX_TYPE_FW ;
@@ -1254,9 +1253,9 @@ void mt7915_mac_write_txwi(struct mt7915_dev *dev, __le32 *txwi, txwi[7 ] = wcid->amsdu ?cpu_to_le32 (MT_TXD7_HW_AMSDU ) :0 ;if (is_8023) -mt7915_mac_write_txwi_8023 (dev, txwi, skb, wcid); +mt7915_mac_write_txwi_8023 (txwi, skb, wcid);else -mt7915_mac_write_txwi_80211 (dev, txwi, skb, key, &mcast); +mt7915_mac_write_txwi_80211 (txwi, skb, key, &mcast);if (txwi[2 ] &cpu_to_le32 (MT_TXD2_FIX_RATE )) {u16 rate =mt7915_mac_tx_rate_val (mphy, vif, beacon, mcast);
@@ -1315,7 +1314,7 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,return id; pid =mt76_tx_status_skb_add (mdev, wcid, tx_info->skb); -mt7915_mac_write_txwi (dev, txwi_ptr, tx_info->skb, wcid, pid, key,0 ); +mt7915_mac_write_txwi (mdev, txwi_ptr, tx_info->skb, wcid, pid, key,0 ); txp = (struct mt7915_txp *)(txwi +MT_TXD_SIZE );for (i =0 ; i < nbuf; i++) {
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +2 -2
@@ -1853,7 +1853,7 @@ mt7915_mcu_beacon_cont(struct mt7915_dev *dev, struct ieee80211_vif *vif, } buf = (u8 *)tlv +sizeof (*cont); -mt7915_mac_write_txwi (dev, (__le32 *)buf, skb, wcid,0 ,NULL , +mt7915_mac_write_txwi (&dev->mt76, (__le32 *)buf, skb, wcid,0 ,NULL ,BSS_CHANGED_BEACON );memcpy (buf +MT_TXD_SIZE , skb->data, skb->len); }
@@ -1992,7 +1992,7 @@ mt7915_mcu_beacon_inband_discov(struct mt7915_dev *dev, struct ieee80211_vif *vi buf = (u8 *)tlv +sizeof (*discov); -mt7915_mac_write_txwi (dev, (__le32 *)buf, skb, wcid,0 ,NULL , +mt7915_mac_write_txwi (&dev->mt76, (__le32 *)buf, skb, wcid,0 ,NULL , changed);memcpy (buf +MT_TXD_SIZE , skb->data, skb->len);
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +1 -1
@@ -564,7 +564,7 @@ bool mt7915_mac_wtbl_update(struct mt7915_dev *dev, int idx, u32 mask);void mt7915_mac_reset_counters (struct mt7915_phy *phy);void mt7915_mac_cca_stats_reset (struct mt7915_phy *phy);void mt7915_mac_enable_nf (struct mt7915_dev *dev,bool ext_phy); -void mt7915_mac_write_txwi (struct mt7915_dev *dev,__le32 *txwi, +void mt7915_mac_write_txwi (struct mt76_dev *dev,__le32 *txwi,struct sk_buff *skb,struct mt76_wcid *wcid,int pid,struct ieee80211_key_conf *key,u32 changed);void mt7915_mac_set_timing (struct mt7915_phy *phy);
Signature · 1 line
2.35.3
Lorenzo Bianconi
maintainerPATCH 3/5 mt76: connac: move mac connac2 defs in mt76_connac2_mac.h
In reply to Lorenzo BianconiThis is a preliminary patch to share connac2 mac txwi code.
--- .../wireless/mediatek/mt76/mt76_connac2_mac.h | 167 ++++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mac.h | 142 +-------------- .../wireless/mediatek/mt76/mt7915/mt7915.h | 14 -- .../net/wireless/mediatek/mt76/mt7921/mac.h | 123 +------------ .../wireless/mediatek/mt76/mt7921/mt7921.h | 10 -- 5 files changed, 171 insertions(+), 285 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h
drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h new file +167 -0
@@ -0,0 +1,167 @@ +/* SPDX-License-Identifier: ISC */ +/* Copyright (C) 2022 MediaTek Inc. */ + +#ifndef __MT76_CONNAC2_MAC_H +#define __MT76_CONNAC2_MAC_H + +enum tx_header_format { +MT_HDR_FORMAT_802_3 , +MT_HDR_FORMAT_CMD , +MT_HDR_FORMAT_802_11 , +MT_HDR_FORMAT_802_11_EXT , +}; + +enum tx_pkt_type { +MT_TX_TYPE_CT , +MT_TX_TYPE_SF , +MT_TX_TYPE_CMD , +MT_TX_TYPE_FW , +}; + +enum { +MT_CTX0 , +MT_HIF0 =0x0 , + +MT_LMAC_AC00 =0x0 , +MT_LMAC_AC01 , +MT_LMAC_AC02 , +MT_LMAC_AC03 , +MT_LMAC_ALTX0 =0x10 , +MT_LMAC_BMC0 , +MT_LMAC_BCN0 , +MT_LMAC_PSMP0 , +}; + +#define MT_TXD_SIZE (8 * 4) +#define MT_SDIO_TXD_SIZE (MT_TXD_SIZE + 8 * 4) +#define MT_SDIO_TAIL_SIZE 8 +#define MT_SDIO_HDR_SIZE 4 +#define MT_USB_TAIL_SIZE 4 + +#define MT_TXD0_Q_IDX GENMASK(31, 25) +#define MT_TXD0_PKT_FMT GENMASK(24, 23) +#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16) +#define MT_TXD0_TX_BYTES GENMASK(15, 0) + +#define MT_TXD1_LONG_FORMAT BIT(31) +#define MT_TXD1_TGID BIT(30) +#define MT_TXD1_OWN_MAC GENMASK(29, 24) +#define MT_TXD1_AMSDU BIT(23) +#define MT_TXD1_TID GENMASK(22, 20) +#define MT_TXD1_HDR_PAD GENMASK(19, 18) +#define MT_TXD1_HDR_FORMAT GENMASK(17, 16) +#define MT_TXD1_HDR_INFO GENMASK(15, 11) +#define MT_TXD1_ETH_802_3 BIT(15) +#define MT_TXD1_VTA BIT(10) +#define MT_TXD1_WLAN_IDX GENMASK(9, 0) + +#define MT_TXD2_FIX_RATE BIT(31) +#define MT_TXD2_FIXED_RATE BIT(30) +#define MT_TXD2_POWER_OFFSET GENMASK(29, 24) +#define MT_TXD2_MAX_TX_TIME GENMASK(23, 16) +#define MT_TXD2_FRAG GENMASK(15, 14) +#define MT_TXD2_HTC_VLD BIT(13) +#define MT_TXD2_DURATION BIT(12) +#define MT_TXD2_BIP BIT(11) +#define MT_TXD2_MULTICAST BIT(10) +#define MT_TXD2_RTS BIT(9) +#define MT_TXD2_SOUNDING BIT(8) +#define MT_TXD2_NDPA BIT(7) +#define MT_TXD2_NDP BIT(6) +#define MT_TXD2_FRAME_TYPE GENMASK(5, 4) +#define MT_TXD2_SUB_TYPE GENMASK(3, 0) + +#define MT_TXD3_SN_VALID BIT(31) +#define MT_TXD3_PN_VALID BIT(30) +#define MT_TXD3_SW_POWER_MGMT BIT(29) +#define MT_TXD3_BA_DISABLE BIT(28) +#define MT_TXD3_SEQ GENMASK(27, 16) +#define MT_TXD3_REM_TX_COUNT GENMASK(15, 11) +#define MT_TXD3_TX_COUNT GENMASK(10, 6) +#define MT_TXD3_TIMING_MEASURE BIT(5) +#define MT_TXD3_DAS BIT(4) +#define MT_TXD3_EEOSP BIT(3) +#define MT_TXD3_EMRD BIT(2) +#define MT_TXD3_PROTECT_FRAME BIT(1) +#define MT_TXD3_NO_ACK BIT(0) + +#define MT_TXD4_PN_LOW GENMASK(31, 0) + +#define MT_TXD5_PN_HIGH GENMASK(31, 16) +#define MT_TXD5_MD BIT(15) +#define MT_TXD5_ADD_BA BIT(14) +#define MT_TXD5_TX_STATUS_HOST BIT(10) +#define MT_TXD5_TX_STATUS_MCU BIT(9) +#define MT_TXD5_TX_STATUS_FMT BIT(8) +#define MT_TXD5_PID GENMASK(7, 0) + +#define MT_TXD6_TX_IBF BIT(31) +#define MT_TXD6_TX_EBF BIT(30) +#define MT_TXD6_TX_RATE GENMASK(29, 16) +#define MT_TXD6_SGI GENMASK(15, 14) +#define MT_TXD6_HELTF GENMASK(13, 12) +#define MT_TXD6_LDPC BIT(11) +#define MT_TXD6_SPE_ID_IDX BIT(10) +#define MT_TXD6_ANT_ID GENMASK(7, 4) +#define MT_TXD6_DYN_BW BIT(3) +#define MT_TXD6_FIXED_BW BIT(2) +#define MT_TXD6_BW GENMASK(1, 0) + +#define MT_TXD7_TXD_LEN GENMASK(31, 30) +#define MT_TXD7_UDP_TCP_SUM BIT(29) +#define MT_TXD7_IP_SUM BIT(28) +#define MT_TXD7_TYPE GENMASK(21, 20) +#define MT_TXD7_SUB_TYPE GENMASK(19, 16) + +#define MT_TXD7_PSE_FID GENMASK(27, 16) +#define MT_TXD7_SPE_IDX GENMASK(15, 11) +#define MT_TXD7_HW_AMSDU BIT(10) +#define MT_TXD7_TX_TIME GENMASK(9, 0) + +#define MT_TXD8_L_TYPE GENMASK(5, 4) +#define MT_TXD8_L_SUB_TYPE GENMASK(3, 0) + +#define MT_TX_RATE_STBC BIT(13) +#define MT_TX_RATE_NSS GENMASK(12, 10) +#define MT_TX_RATE_MODE GENMASK(9, 6) +#define MT_TX_RATE_SU_EXT_TONE BIT(5) +#define MT_TX_RATE_DCM BIT(4) +/* VHT/HE only use bits 0-3 */ +#define MT_TX_RATE_IDX GENMASK(5, 0) + +#define MT_TXS0_FIXED_RATE BIT(31) +#define MT_TXS0_BW GENMASK(30, 29) +#define MT_TXS0_TID GENMASK(28, 26) +#define MT_TXS0_AMPDU BIT(25) +#define MT_TXS0_TXS_FORMAT GENMASK(24, 23) +#define MT_TXS0_BA_ERROR BIT(22) +#define MT_TXS0_PS_FLAG BIT(21) +#define MT_TXS0_TXOP_TIMEOUT BIT(20) +#define MT_TXS0_BIP_ERROR BIT(19) + +#define MT_TXS0_QUEUE_TIMEOUT BIT(18) +#define MT_TXS0_RTS_TIMEOUT BIT(17) +#define MT_TXS0_ACK_TIMEOUT BIT(16) +#define MT_TXS0_ACK_ERROR_MASK GENMASK(18, 16) + +#define MT_TXS0_TX_STATUS_HOST BIT(15) +#define MT_TXS0_TX_STATUS_MCU BIT(14) +#define MT_TXS0_TX_RATE GENMASK(13, 0) + +#define MT_TXS1_SEQNO GENMASK(31, 20) +#define MT_TXS1_RESP_RATE GENMASK(19, 16) +#define MT_TXS1_RXV_SEQNO GENMASK(15, 8) +#define MT_TXS1_TX_POWER_DBM GENMASK(7, 0) + +#define MT_TXS2_BF_STATUS GENMASK(31, 30) +#define MT_TXS2_LAST_TX_RATE GENMASK(29, 27) +#define MT_TXS2_SHARED_ANTENNA BIT(26) +#define MT_TXS2_WCID GENMASK(25, 16) +#define MT_TXS2_TX_DELAY GENMASK(15, 0) + +#define MT_TXS3_PID GENMASK(31, 24) +#define MT_TXS3_ANT_ID GENMASK(23, 0) + +#define MT_TXS4_TIMESTAMP GENMASK(31, 0) + +#endif /* __MT76_CONNAC2_MAC_H */
drivers/net/wireless/mediatek/mt76/mt7915/mac.h +2 -140
166 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +0 -14
@@ -348,20 +348,6 @@ enum { __MT_WFDMA_MAX, }; -enum { -MT_CTX0 , -MT_HIF0 =0x0 , - -MT_LMAC_AC00 =0x0 , -MT_LMAC_AC01 , -MT_LMAC_AC02 , -MT_LMAC_AC03 , -MT_LMAC_ALTX0 =0x10 , -MT_LMAC_BMC0 , -MT_LMAC_BCN0 , -MT_LMAC_PSMP0 , -}; -enum {MT_RX_SEL0 ,MT_RX_SEL1 ,
drivers/net/wireless/mediatek/mt76/mt7921/mac.h +2 -121
147 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -10
@@ -251,16 +251,6 @@ struct mt7921_txpwr { } data[TXPWR_MAX_NUM ]; }; -enum { -MT_LMAC_AC00 , -MT_LMAC_AC01 , -MT_LMAC_AC02 , -MT_LMAC_AC03 , -MT_LMAC_ALTX0 =0x10 , -MT_LMAC_BMC0 , -MT_LMAC_BCN0 , -}; -static inline struct mt7921_phy *mt7921_hw_phy (struct ieee80211_hw *hw) {
Signature · 1 line
2.35.3
Lorenzo Bianconi
maintainerPATCH 4/5 mt76: connac: move connac2_mac_write_txwi in mt76_connac module
In reply to Lorenzo Bianconimac_write_txwi code is shared between connac2 devices (mt7915 and mt7921). Move it in connac module.
--- .../net/wireless/mediatek/mt76/mt76_connac.h | 6 + .../wireless/mediatek/mt76/mt76_connac_mac.c | 284 ++++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mac.c | 251 +--------------- .../net/wireless/mediatek/mt76/mt7915/mcu.c | 2 +- .../wireless/mediatek/mt76/mt7915/mt7915.h | 1 - .../net/wireless/mediatek/mt76/mt7921/mac.c | 212 +------------ .../net/wireless/mediatek/mt76/mt7921/main.c | 2 +- .../net/wireless/mediatek/mt76/mt7921/mcu.c | 4 +- .../wireless/mediatek/mt76/mt7921/mt7921.h | 5 - .../wireless/mediatek/mt76/mt7921/pci_mac.c | 4 +- 10 files changed, 299 insertions(+), 472 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76_connac.h +6 -0
@@ -12,6 +12,8 @@#define MT76_CONNAC_MAX_SCHED_SCAN_SSID 10#define MT76_CONNAC_MAX_SCAN_MATCH 16 +#define MT76_CONNAC_MAX_WMM_SETS 4 +#define MT76_CONNAC_COREDUMP_TIMEOUT (HZ / 20)#define MT76_CONNAC_COREDUMP_SZ (1300 * 1024)
@@ -244,5 +246,9 @@ void mt76_connac_pm_queue_skb(struct ieee80211_hw *hw, struct sk_buff *skb);void mt76_connac_pm_dequeue_skbs (struct mt76_phy *phy,struct mt76_connac_pm *pm); +void mt76_connac2_mac_write_txwi (struct mt76_dev *dev,__le32 *txwi, +struct sk_buff *skb,struct mt76_wcid *wcid, +struct ieee80211_key_conf *key,int pid, +u32 changed);#endif /* __MT76_CONNAC_H */
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +284 -0
293 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7915/mac.c +2 -249
267 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +1 -1
@@ -2432,7 +2432,7 @@ int mt7915_mcu_set_tx(struct mt7915_dev *dev, struct ieee80211_vif *vif)struct edca *e = &req.edca[ac]; e->set =WMM_PARAM_SET ; - e->queue = ac + mvif->mt76.wmm_idx *MT7915_MAX_WMM_SETS ; + e->queue = ac + mvif->mt76.wmm_idx *MT76_CONNAC_MAX_WMM_SETS ; e->aifs = q->aifs; e->txop =cpu_to_le16 (q->txop);
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +0 -1
@@ -10,7 +10,6 @@#include "regs.h" #define MT7915_MAX_INTERFACES 19 -#define MT7915_MAX_WMM_SETS 4#define MT7915_WTBL_SIZE 288#define MT7916_WTBL_SIZE 544#define MT7915_WTBL_RESERVED (mt7915_wtbl_size(dev) - 1)
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +1 -211
224 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/main.c +1 -1
@@ -322,7 +322,7 @@ static int mt7921_add_interface(struct ieee80211_hw *hw, mvif->mt76.omac_idx = mvif->mt76.idx; mvif->phy = phy; mvif->mt76.band_idx =0 ; - mvif->mt76.wmm_idx = mvif->mt76.idx %MT7921_MAX_WMM_SETS ; + mvif->mt76.wmm_idx = mvif->mt76.idx %MT76_CONNAC_MAX_WMM_SETS ; ret =mt76_connac_mcu_uni_add_dev (&dev->mphy, vif, &mvif->sta.wcid, true);
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +2 -2
@@ -994,8 +994,8 @@ mt7921_mcu_uni_add_beacon_offload(struct mt7921_dev *dev,return -EINVAL ; } -mt7921_mac_write_txwi (&dev->mt76, (__le32 *)(req.beacon_tlv.pkt), skb, - wcid,NULL ,0 , true); +mt76_connac2_mac_write_txwi (&dev->mt76, (__le32 *)(req.beacon_tlv.pkt), + skb, wcid,NULL ,0 ,BSS_CHANGED_BEACON );memcpy (req.beacon_tlv.pkt +MT_TXD_SIZE , skb->data, skb->len); req.beacon_tlv.pkt_len =cpu_to_le16 (MT_TXD_SIZE + skb->len); req.beacon_tlv.tim_ie_pos =cpu_to_le16 (MT_TXD_SIZE + offs.tim_offset);
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +0 -5
@@ -11,7 +11,6 @@#include "acpi_sar.h" #define MT7921_MAX_INTERFACES 4 -#define MT7921_MAX_WMM_SETS 4#define MT7921_WTBL_SIZE 20#define MT7921_WTBL_RESERVED (MT7921_WTBL_SIZE - 1)#define MT7921_WTBL_STA (MT7921_WTBL_RESERVED - \
@@ -417,10 +416,6 @@ int mt7921_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void *data, int len);int mt7921_testmode_dump (struct ieee80211_hw *hw,struct sk_buff *msg,struct netlink_callback *cb,void *data,int len); -void mt7921_mac_write_txwi (struct mt76_dev *dev,__le32 *txwi, -struct sk_buff *skb,struct mt76_wcid *wcid, -struct ieee80211_key_conf *key,int pid, -bool beacon);void mt7921_tx_check_aggr (struct ieee80211_sta *sta,__le32 *txwi);void mt7921_mac_sta_poll (struct mt7921_dev *dev); int mt7921_mcu_fill_message(struct mt76_dev *mdev, struct sk_buff *skb,
drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +2 -2
@@ -72,8 +72,8 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr, } pid =mt76_tx_status_skb_add (mdev, wcid, tx_info->skb); -mt7921_mac_write_txwi (mdev, txwi_ptr, tx_info->skb, wcid, key, - pid, false); +mt76_connac2_mac_write_txwi (mdev, txwi_ptr, tx_info->skb, wcid, key, + pid,0 ); txp = (struct mt7921_txp_common *)(txwi +MT_TXD_SIZE );memset (txp,0 ,sizeof (struct mt7921_txp_common ));
Signature · 1 line
2.35.3
Lorenzo Bianconi
maintainerPATCH 5/5 mt76: connac: move mt76_connac2_mac_add_txs_skb in connac module
In reply to Lorenzo BianconiMove mt76_connac2_mac_add_txs_skb in mt76-connac module since it is shared between connac2 devices (mt7921 and mt7915)
--- .../net/wireless/mediatek/mt76/mt76_connac.h | 3 + .../wireless/mediatek/mt76/mt76_connac_mac.c | 122 +++++++++++++++++ .../net/wireless/mediatek/mt76/mt7915/mac.c | 126 +----------------- .../net/wireless/mediatek/mt76/mt7921/mac.c | 122 +---------------- 4 files changed, 130 insertions(+), 243 deletions(-)
drivers/net/wireless/mediatek/mt76/mt76_connac.h +3 -0
@@ -250,5 +250,8 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi, struct sk_buff *skb, struct mt76_wcid *wcid, struct ieee80211_key_conf *key, int pid, u32 changed); +bool mt76_connac2_mac_add_txs_skb (struct mt76_dev *dev,struct mt76_wcid *wcid, +int pid,__le32 *txs_data, +struct mt76_sta_stats *stats);#endif /* __MT76_CONNAC_H */
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +122 -0
125 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7915/mac.c +2 -124
138 lines not on this page · raw message
drivers/net/wireless/mediatek/mt76/mt7921/mac.c +3 -119
138 lines not on this page · raw message
Signature · 1 line
2.35.3