wifi: mt76: move move mt76_sta_stats to mt76_wcid
authorRyder Lee <ryder.lee@mediatek.com>
Wed, 10 Aug 2022 16:40:43 +0000 (00:40 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 15 Sep 2022 10:54:01 +0000 (12:54 +0200)
This is a preliminary patch for WED's TxS support.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt76_connac.h
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
drivers/net/wireless/mediatek/mt76/mt7915/main.c
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h
drivers/net/wireless/mediatek/mt76/mt7921/mac.c
drivers/net/wireless/mediatek/mt76/mt7921/main.c
drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h

index abfa660cc815a43b5bc8cf70f2fa734edd49e620..5ece76b6215d17a33a8583815fd23dcb3f7636c0 100644 (file)
@@ -252,6 +252,26 @@ struct mt76_queue_ops {
        void (*reset_q)(struct mt76_dev *dev, struct mt76_queue *q);
 };
 
+enum mt76_phy_type {
+       MT_PHY_TYPE_CCK,
+       MT_PHY_TYPE_OFDM,
+       MT_PHY_TYPE_HT,
+       MT_PHY_TYPE_HT_GF,
+       MT_PHY_TYPE_VHT,
+       MT_PHY_TYPE_HE_SU = 8,
+       MT_PHY_TYPE_HE_EXT_SU,
+       MT_PHY_TYPE_HE_TB,
+       MT_PHY_TYPE_HE_MU,
+       __MT_PHY_TYPE_HE_MAX,
+};
+
+struct mt76_sta_stats {
+       u64 tx_mode[__MT_PHY_TYPE_HE_MAX];
+       u64 tx_bw[4];           /* 20, 40, 80, 160 */
+       u64 tx_nss[4];          /* 1, 2, 3, 4 */
+       u64 tx_mcs[16];         /* mcs idx */
+};
+
 enum mt76_wcid_flags {
        MT_WCID_FLAG_CHECK_PS,
        MT_WCID_FLAG_PS,
@@ -299,6 +319,8 @@ struct mt76_wcid {
 
        struct list_head list;
        struct idr pktid;
+
+       struct mt76_sta_stats stats;
 };
 
 struct mt76_txq {
@@ -814,26 +836,6 @@ struct mt76_power_limits {
        s8 ru[7][12];
 };
 
-enum mt76_phy_type {
-       MT_PHY_TYPE_CCK,
-       MT_PHY_TYPE_OFDM,
-       MT_PHY_TYPE_HT,
-       MT_PHY_TYPE_HT_GF,
-       MT_PHY_TYPE_VHT,
-       MT_PHY_TYPE_HE_SU = 8,
-       MT_PHY_TYPE_HE_EXT_SU,
-       MT_PHY_TYPE_HE_TB,
-       MT_PHY_TYPE_HE_MU,
-       __MT_PHY_TYPE_HE_MAX,
-};
-
-struct mt76_sta_stats {
-       u64 tx_mode[__MT_PHY_TYPE_HE_MAX];
-       u64 tx_bw[4];           /* 20, 40, 80, 160 */
-       u64 tx_nss[4];          /* 1, 2, 3, 4 */
-       u64 tx_mcs[16];         /* mcs idx */
-};
-
 struct mt76_ethtool_worker_info {
        u64 *data;
        int idx;
index d03365530ac16c57353e49d16dc3cf90fcdb91c6..851874f782c5870d96e82ac51ada9e30b60b10cc 100644 (file)
@@ -355,8 +355,7 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi,
                                 struct ieee80211_key_conf *key, int pid,
                                 enum mt76_txq_id qid, 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);
+                                 int pid, __le32 *txs_data);
 void mt76_connac2_mac_decode_he_radiotap(struct mt76_dev *dev,
                                         struct sk_buff *skb,
                                         __le32 *rxv, u32 mode);
index 18dea8e1fb20b30896ea8aba4e697703d2de0df6..d0a94cb6d08b157c9bef954d4a8382da4de0b68b 100644 (file)
@@ -551,9 +551,9 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi,
 EXPORT_SYMBOL_GPL(mt76_connac2_mac_write_txwi);
 
 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)
+                                 int pid, __le32 *txs_data)
 {
+       struct mt76_sta_stats *stats = &wcid->stats;
        struct ieee80211_supported_band *sband;
        struct mt76_phy *mphy;
        struct ieee80211_tx_info *info;
index 49aa5c056063e3e0d04309fdbc51730824b57c67..fd99117bcb6d5c4da272105646027fa36bfa5b98 100644 (file)
@@ -1015,8 +1015,7 @@ static void mt7915_mac_add_txs(struct mt7915_dev *dev, void *data)
 
        msta = container_of(wcid, struct mt7915_sta, wcid);
 
-       mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data,
-                                    &msta->stats);
+       mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data);
        if (!wcid->sta)
                goto out;
 
index bd3386bf0f8a07ffe76d57ac0ba91b2630234a13..090c52803052eea7c79e5747868b772a4c2bcb6c 100644 (file)
@@ -1224,7 +1224,7 @@ static void mt7915_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
        if (msta->vif->mt76.idx != wi->idx)
                return;
 
-       mt76_ethtool_worker(wi, &msta->stats);
+       mt76_ethtool_worker(wi, &msta->wcid.stats);
 }
 
 static
index 54ef2a12a4437a52e6bb375542464e1146c4cd93..1eb11617a62553ab22ad82b1a76ddc7f56d482d8 100644 (file)
@@ -127,8 +127,6 @@ struct mt7915_sta {
        unsigned long jiffies;
        unsigned long ampdu_state;
 
-       struct mt76_sta_stats stats;
-
        struct mt76_connac_sta_key_conf bip;
 
        struct {
index ea6ae3b693101a117dee57ddb27da34c2c6e8d64..7f08d9fc767f77da122bfb1d0739d70774dc115c 100644 (file)
@@ -538,8 +538,7 @@ void mt7921_mac_add_txs(struct mt7921_dev *dev, void *data)
 
        msta = container_of(wcid, struct mt7921_sta, wcid);
 
-       mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data,
-                                    &msta->stats);
+       mt76_connac2_mac_add_txs_skb(&dev->mt76, wcid, pid, txs_data);
        if (!wcid->sta)
                goto out;
 
index 7214735011d04b07e94baa6c666a865f452a0d9f..1f02a8fe1a047a52b120850d3e6428aa5e249af3 100644 (file)
@@ -1045,7 +1045,7 @@ mt7921_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
        if (msta->vif->mt76.idx != wi->idx)
                return;
 
-       mt76_ethtool_worker(wi, &msta->stats);
+       mt76_ethtool_worker(wi, &msta->wcid.stats);
 }
 
 static
index 70cad399540324dd2661c51507dd0eca4e2c824f..785ca0b93321b2faace344157905ca500db220f9 100644 (file)
@@ -100,7 +100,6 @@ struct mt7921_sta {
 
        unsigned long last_txs;
        unsigned long ampdu_state;
-       struct mt76_sta_stats stats;
 
        struct mt76_connac_sta_key_conf bip;
 };