mt76: unify sta structure part 2
authorStanislaw Gruszka <sgruszka@redhat.com>
Wed, 29 Aug 2018 11:16:45 +0000 (13:16 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 4 Sep 2018 08:03:21 +0000 (11:03 +0300)
Second part of unifying mt76x02_sta structure between mt76x0 and mt76x2.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
13 files changed:
drivers/net/wireless/mediatek/mt76/mt76x02_mac.h
drivers/net/wireless/mediatek/mt76/mt76x2.h
drivers/net/wireless/mediatek/mt76/mt76x2_common.c
drivers/net/wireless/mediatek/mt76/mt76x2_init.c
drivers/net/wireless/mediatek/mt76/mt76x2_init_common.c
drivers/net/wireless/mediatek/mt76/mt76x2_mac.c
drivers/net/wireless/mediatek/mt76/mt76x2_mac.h
drivers/net/wireless/mediatek/mt76/mt76x2_mac_common.c
drivers/net/wireless/mediatek/mt76/mt76x2_main.c
drivers/net/wireless/mediatek/mt76/mt76x2_phy_common.c
drivers/net/wireless/mediatek/mt76/mt76x2_trace.h
drivers/net/wireless/mediatek/mt76/mt76x2_tx_common.c
drivers/net/wireless/mediatek/mt76/mt76x2u_core.c

index 461ac61f45dc0a71805579ab4e6da0386f78df25..6712bb1f9181843519a562b53b55db0fd73af340 100644 (file)
@@ -18,6 +18,8 @@
 #ifndef __MT76X02_MAC_H
 #define __MT76X02_MAC_H
 
+#include <linux/average.h>
+
 struct mt76x02_tx_status {
        u8 valid:1;
        u8 success:1;
@@ -35,12 +37,17 @@ struct mt76x02_vif {
        struct mt76_wcid group_wcid;
 };
 
+DECLARE_EWMA(signal, 10, 8);
+
 struct mt76x02_sta {
        struct mt76_wcid wcid; /* must be first */
 
        struct mt76x02_vif *vif;
        struct mt76x02_tx_status status;
        int n_frames;
+
+       struct ewma_signal rssi;
+       int inactive_count;
 };
 
 static inline bool mt76x02_wait_for_mac(struct mt76_dev *dev)
index 703d5c041b2a1a241c2639cdd1fba72768ddcb55..63e88d9147a804c107a2d3e2e5f81c99c7bb7428 100644 (file)
@@ -27,7 +27,6 @@
 #include <linux/mutex.h>
 #include <linux/bitops.h>
 #include <linux/kfifo.h>
-#include <linux/average.h>
 
 #define MT7662_FIRMWARE                "mt7662.bin"
 #define MT7662_ROM_PATCH       "mt7662_rom_patch.bin"
@@ -51,8 +50,6 @@
 #include "mt76x2_mac.h"
 #include "mt76x2_dfs.h"
 
-DECLARE_EWMA(signal, 10, 8)
-
 struct mt76x2_mcu {
        struct mutex mutex;
 
@@ -104,7 +101,7 @@ struct mt76x2_dev {
        int txpower_cur;
 
        u8 txdone_seq;
-       DECLARE_KFIFO_PTR(txstatus_fifo, struct mt76x2_tx_status);
+       DECLARE_KFIFO_PTR(txstatus_fifo, struct mt76x02_tx_status);
 
        struct mt76x2_mcu mcu;
        struct sk_buff *rx_head;
@@ -144,17 +141,6 @@ struct mt76x2_dev {
        struct mt76x2_dfs_pattern_detector dfs_pd;
 };
 
-struct mt76x2_sta {
-       struct mt76_wcid wcid; /* must be first */
-
-       struct mt76x02_vif *vif;
-       struct mt76x2_tx_status status;
-       int n_frames;
-
-       struct ewma_signal rssi;
-       int inactive_count;
-};
-
 static inline bool is_mt7612(struct mt76x2_dev *dev)
 {
        return mt76_chip(&dev->mt76) == 0x7612;
@@ -264,9 +250,9 @@ void mt76x2_tx_set_txpwr_auto(struct mt76x2_dev *dev, s8 txpwr);
 int mt76x2_insert_hdr_pad(struct sk_buff *skb);
 
 bool mt76x2_mac_load_tx_status(struct mt76x2_dev *dev,
-                              struct mt76x2_tx_status *stat);
+                              struct mt76x02_tx_status *stat);
 void mt76x2_send_tx_status(struct mt76x2_dev *dev,
-                          struct mt76x2_tx_status *stat, u8 *update);
+                          struct mt76x02_tx_status *stat, u8 *update);
 void mt76x2_reset_wlan(struct mt76x2_dev *dev, bool enable);
 void mt76x2_init_txpower(struct mt76x2_dev *dev,
                         struct ieee80211_supported_band *sband);
index 182dd6e24d441afd9a706953a140174aa61251e6..11ff60360ce67b51ac9b722591cccf419cdb95f4 100644 (file)
@@ -24,7 +24,7 @@ int mt76x2_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
        enum ieee80211_ampdu_mlme_action action = params->action;
        struct ieee80211_sta *sta = params->sta;
        struct mt76x2_dev *dev = hw->priv;
-       struct mt76x2_sta *msta = (struct mt76x2_sta *) sta->drv_priv;
+       struct mt76x02_sta *msta = (struct mt76x02_sta *) sta->drv_priv;
        struct ieee80211_txq *txq = sta->txq[params->tid];
        u16 tid = params->tid;
        u16 *ssn = &params->ssn;
@@ -73,7 +73,7 @@ int mt76x2_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                   struct ieee80211_sta *sta)
 {
        struct mt76x2_dev *dev = hw->priv;
-       struct mt76x2_sta *msta = (struct mt76x2_sta *) sta->drv_priv;
+       struct mt76x02_sta *msta = (struct mt76x02_sta *) sta->drv_priv;
        struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
        int ret = 0;
        int idx = 0;
@@ -114,7 +114,7 @@ int mt76x2_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                      struct ieee80211_sta *sta)
 {
        struct mt76x2_dev *dev = hw->priv;
-       struct mt76x2_sta *msta = (struct mt76x2_sta *) sta->drv_priv;
+       struct mt76x02_sta *msta = (struct mt76x02_sta *) sta->drv_priv;
        int idx = msta->wcid.idx;
        int i;
 
@@ -146,7 +146,7 @@ int mt76x2_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
 {
        struct mt76x2_dev *dev = hw->priv;
        struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
-       struct mt76x2_sta *msta;
+       struct mt76x02_sta *msta;
        struct mt76_wcid *wcid;
        int idx = key->keyidx;
        int ret;
@@ -173,7 +173,7 @@ int mt76x2_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
            !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
                return -EOPNOTSUPP;
 
-       msta = sta ? (struct mt76x2_sta *) sta->drv_priv : NULL;
+       msta = sta ? (struct mt76x02_sta *) sta->drv_priv : NULL;
        wcid = msta ? &msta->wcid : &mvif->group_wcid;
 
        if (cmd == SET_KEY) {
@@ -256,7 +256,7 @@ void mt76x2_sta_rate_tbl_update(struct ieee80211_hw *hw,
                                struct ieee80211_sta *sta)
 {
        struct mt76x2_dev *dev = hw->priv;
-       struct mt76x2_sta *msta = (struct mt76x2_sta *) sta->drv_priv;
+       struct mt76x02_sta *msta = (struct mt76x02_sta *) sta->drv_priv;
        struct ieee80211_sta_rates *rates = rcu_dereference(sta->rates);
        struct ieee80211_tx_rate rate = {};
 
index f5cf01f912b9ceab93bff6d521804620d6807f16..1f397c5e64a39293c6f7b21681e3fcef9679620e 100644 (file)
@@ -533,7 +533,7 @@ int mt76x2_register_device(struct mt76x2_dev *dev)
        int fifo_size;
        int i, ret;
 
-       fifo_size = roundup_pow_of_two(32 * sizeof(struct mt76x2_tx_status));
+       fifo_size = roundup_pow_of_two(32 * sizeof(struct mt76x02_tx_status));
        status_fifo = devm_kzalloc(dev->mt76.dev, fifo_size, GFP_KERNEL);
        if (!status_fifo)
                return -ENOMEM;
index 5885c4fff4c69b4b7a989927219ed4a5e88f6aeb..eccdf80628a662ccbae590034d5002637f9471f3 100644 (file)
@@ -208,7 +208,7 @@ void mt76x2_init_device(struct mt76x2_dev *dev)
        hw->max_rate_tries = 1;
        hw->extra_tx_headroom = 2;
 
-       hw->sta_data_size = sizeof(struct mt76x2_sta);
+       hw->sta_data_size = sizeof(struct mt76x02_sta);
        hw->vif_data_size = sizeof(struct mt76x02_vif);
 
        ieee80211_hw_set(hw, SUPPORTS_HT_CCK_RATES);
index 23cf437d14f96cbe3d39cd3fcb3a81ba4ae5b9a6..71ab06050e237edfaf8961ce7e0e07831774d1d5 100644 (file)
@@ -30,7 +30,7 @@ void mt76x2_mac_set_bssid(struct mt76x2_dev *dev, u8 idx, const u8 *addr)
 
 void mt76x2_mac_poll_tx_status(struct mt76x2_dev *dev, bool irq)
 {
-       struct mt76x2_tx_status stat = {};
+       struct mt76x02_tx_status stat = {};
        unsigned long flags;
        u8 update = 1;
        bool ret;
@@ -78,7 +78,7 @@ mt76x2_mac_queue_txdone(struct mt76x2_dev *dev, struct sk_buff *skb,
 
 void mt76x2_mac_process_tx_status_fifo(struct mt76x2_dev *dev)
 {
-       struct mt76x2_tx_status stat;
+       struct mt76x02_tx_status stat;
        u8 update = 1;
 
        while (kfifo_get(&dev->txstatus_fifo, &stat))
index 5e29887e443b2b39fb9bb26d5d7abe40a1b67b55..14089e8e5a028ae4ca233e0e9b7e0508ec36b698 100644 (file)
@@ -25,17 +25,6 @@ struct mt76x2_sta;
 struct mt76x02_vif;
 struct mt76x2_txwi;
 
-struct mt76x2_tx_status {
-       u8 valid:1;
-       u8 success:1;
-       u8 aggr:1;
-       u8 ack_req:1;
-       u8 wcid;
-       u8 pktid;
-       u8 retry;
-       u16 rate;
-} __packed __aligned(2);
-
 struct mt76x2_tx_info {
        unsigned long jiffies;
        u8 tries;
index f4ae0f157aaaded28614c7f67a4101ff6aef6a59..bdad454108b946da619910f93bc91d40f9b9433d 100644 (file)
@@ -54,7 +54,7 @@ void mt76x2_mac_stop(struct mt76x2_dev *dev, bool force)
 EXPORT_SYMBOL_GPL(mt76x2_mac_stop);
 
 bool mt76x2_mac_load_tx_status(struct mt76x2_dev *dev,
-                              struct mt76x2_tx_status *stat)
+                              struct mt76x02_tx_status *stat)
 {
        u32 stat1, stat2;
 
@@ -138,7 +138,7 @@ mt76x2_mac_process_tx_rate(struct ieee80211_tx_rate *txrate, u16 rate,
 static void
 mt76x2_mac_fill_tx_status(struct mt76x2_dev *dev,
                          struct ieee80211_tx_info *info,
-                         struct mt76x2_tx_status *st, int n_frames)
+                         struct mt76x02_tx_status *st, int n_frames)
 {
        struct ieee80211_tx_rate *rate = info->status.rates;
        int cur_idx, last_rate;
@@ -178,12 +178,12 @@ mt76x2_mac_fill_tx_status(struct mt76x2_dev *dev,
 }
 
 void mt76x2_send_tx_status(struct mt76x2_dev *dev,
-                          struct mt76x2_tx_status *stat, u8 *update)
+                          struct mt76x02_tx_status *stat, u8 *update)
 {
        struct ieee80211_tx_info info = {};
        struct ieee80211_sta *sta = NULL;
        struct mt76_wcid *wcid = NULL;
-       struct mt76x2_sta *msta = NULL;
+       struct mt76x02_sta *msta = NULL;
 
        rcu_read_lock();
        if (stat->wcid < ARRAY_SIZE(dev->wcid))
@@ -192,7 +192,7 @@ void mt76x2_send_tx_status(struct mt76x2_dev *dev,
        if (wcid) {
                void *priv;
 
-               priv = msta = container_of(wcid, struct mt76x2_sta, wcid);
+               priv = msta = container_of(wcid, struct mt76x02_sta, wcid);
                sta = container_of(priv, struct ieee80211_sta,
                                   drv_priv);
        }
@@ -472,7 +472,7 @@ int mt76x2_mac_get_rssi(struct mt76x2_dev *dev, s8 rssi, int chain)
        return rssi;
 }
 
-static struct mt76x2_sta *
+static struct mt76x02_sta *
 mt76x2_rx_get_sta(struct mt76x2_dev *dev, u8 idx)
 {
        struct mt76_wcid *wcid;
@@ -484,11 +484,11 @@ mt76x2_rx_get_sta(struct mt76x2_dev *dev, u8 idx)
        if (!wcid)
                return NULL;
 
-       return container_of(wcid, struct mt76x2_sta, wcid);
+       return container_of(wcid, struct mt76x02_sta, wcid);
 }
 
 static struct mt76_wcid *
-mt76x2_rx_get_sta_wcid(struct mt76x2_dev *dev, struct mt76x2_sta *sta,
+mt76x2_rx_get_sta_wcid(struct mt76x2_dev *dev, struct mt76x02_sta *sta,
                       bool unicast)
 {
        if (!sta)
@@ -505,7 +505,7 @@ int mt76x2_mac_process_rx(struct mt76x2_dev *dev, struct sk_buff *skb,
 {
        struct mt76_rx_status *status = (struct mt76_rx_status *) skb->cb;
        struct mt76x2_rxwi *rxwi = rxi;
-       struct mt76x2_sta *sta;
+       struct mt76x02_sta *sta;
        u32 rxinfo = le32_to_cpu(rxwi->rxinfo);
        u32 ctl = le32_to_cpu(rxwi->ctl);
        u16 rate = le16_to_cpu(rxwi->rate);
index c445073a1a41dd76ece89ec06bb8a0eab2e5c1d2..f212f329cebe3493512c8db6782f6b6cf55e53d1 100644 (file)
@@ -202,7 +202,7 @@ mt76x2_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 void
 mt76x2_sta_ps(struct mt76_dev *mdev, struct ieee80211_sta *sta, bool ps)
 {
-       struct mt76x2_sta *msta = (struct mt76x2_sta *) sta->drv_priv;
+       struct mt76x02_sta *msta = (struct mt76x02_sta *) sta->drv_priv;
        struct mt76x2_dev *dev = container_of(mdev, struct mt76x2_dev, mt76);
        int idx = msta->wcid.idx;
 
index 9fd6ab4cbb949e617ee64527a9e2fa6a12f6c3fd..4830ca20a32db987a94bac083eb3760dde7ab64a 100644 (file)
@@ -303,7 +303,7 @@ EXPORT_SYMBOL_GPL(mt76x2_phy_set_band);
 
 int mt76x2_phy_get_min_avg_rssi(struct mt76x2_dev *dev)
 {
-       struct mt76x2_sta *sta;
+       struct mt76x02_sta *sta;
        struct mt76_wcid *wcid;
        int i, j, min_rssi = 0;
        s8 cur_rssi;
@@ -325,7 +325,7 @@ int mt76x2_phy_get_min_avg_rssi(struct mt76x2_dev *dev)
                        if (!wcid)
                                continue;
 
-                       sta = container_of(wcid, struct mt76x2_sta, wcid);
+                       sta = container_of(wcid, struct mt76x02_sta, wcid);
                        spin_lock(&dev->mt76.rx_lock);
                        if (sta->inactive_count++ < 5)
                                cur_rssi = ewma_signal_read(&sta->rssi);
index 4cd424148d4b3daf90dfbe8e5448deb2e595891c..eb5afeaefa44fca583a808e31b835bbfb8c8dc4b 100644 (file)
@@ -75,7 +75,7 @@ DEFINE_EVENT(dev_txid_evt, mac_txdone_add,
 
 TRACE_EVENT(mac_txstat_fetch,
        TP_PROTO(struct mt76x2_dev *dev,
-                struct mt76x2_tx_status *stat),
+                struct mt76x02_tx_status *stat),
 
        TP_ARGS(dev, stat),
 
index 16086ad12320d8b4e791f0eb2a666a953e35b7b4..d968f9ad6f50bbfbfd4933cb30aa73ac836b31fd 100644 (file)
@@ -27,9 +27,9 @@ void mt76x2_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
        struct mt76_wcid *wcid = &dev->global_wcid;
 
        if (control->sta) {
-               struct mt76x2_sta *msta;
+               struct mt76x02_sta *msta;
 
-               msta = (struct mt76x2_sta *)control->sta->drv_priv;
+               msta = (struct mt76x02_sta *)control->sta->drv_priv;
                wcid = &msta->wcid;
                /* sw encrypted frames */
                if (!info->control.hw_key && wcid->hw_key_idx != 0xff)
index 1ca5dd05b265cea55336b3fbeeb00b8ffac56342..500d7db338aa959943076465444348c0ee28195c 100644 (file)
@@ -66,7 +66,7 @@ mt76x2u_set_txinfo(struct sk_buff *skb,
 bool mt76x2u_tx_status_data(struct mt76_dev *mdev, u8 *update)
 {
        struct mt76x2_dev *dev = container_of(mdev, struct mt76x2_dev, mt76);
-       struct mt76x2_tx_status stat;
+       struct mt76x02_tx_status stat;
 
        if (!mt76x2_mac_load_tx_status(dev, &stat))
                return false;