mt76: unify sta structure part 2
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>
This commit is contained in:
parent
f5a7f126e5
commit
b2d91fb302
@ -18,6 +18,8 @@
|
|||||||
#ifndef __MT76X02_MAC_H
|
#ifndef __MT76X02_MAC_H
|
||||||
#define __MT76X02_MAC_H
|
#define __MT76X02_MAC_H
|
||||||
|
|
||||||
|
#include <linux/average.h>
|
||||||
|
|
||||||
struct mt76x02_tx_status {
|
struct mt76x02_tx_status {
|
||||||
u8 valid:1;
|
u8 valid:1;
|
||||||
u8 success:1;
|
u8 success:1;
|
||||||
@ -35,12 +37,17 @@ struct mt76x02_vif {
|
|||||||
struct mt76_wcid group_wcid;
|
struct mt76_wcid group_wcid;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
DECLARE_EWMA(signal, 10, 8);
|
||||||
|
|
||||||
struct mt76x02_sta {
|
struct mt76x02_sta {
|
||||||
struct mt76_wcid wcid; /* must be first */
|
struct mt76_wcid wcid; /* must be first */
|
||||||
|
|
||||||
struct mt76x02_vif *vif;
|
struct mt76x02_vif *vif;
|
||||||
struct mt76x02_tx_status status;
|
struct mt76x02_tx_status status;
|
||||||
int n_frames;
|
int n_frames;
|
||||||
|
|
||||||
|
struct ewma_signal rssi;
|
||||||
|
int inactive_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline bool mt76x02_wait_for_mac(struct mt76_dev *dev)
|
static inline bool mt76x02_wait_for_mac(struct mt76_dev *dev)
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/kfifo.h>
|
#include <linux/kfifo.h>
|
||||||
#include <linux/average.h>
|
|
||||||
|
|
||||||
#define MT7662_FIRMWARE "mt7662.bin"
|
#define MT7662_FIRMWARE "mt7662.bin"
|
||||||
#define MT7662_ROM_PATCH "mt7662_rom_patch.bin"
|
#define MT7662_ROM_PATCH "mt7662_rom_patch.bin"
|
||||||
@ -51,8 +50,6 @@
|
|||||||
#include "mt76x2_mac.h"
|
#include "mt76x2_mac.h"
|
||||||
#include "mt76x2_dfs.h"
|
#include "mt76x2_dfs.h"
|
||||||
|
|
||||||
DECLARE_EWMA(signal, 10, 8)
|
|
||||||
|
|
||||||
struct mt76x2_mcu {
|
struct mt76x2_mcu {
|
||||||
struct mutex mutex;
|
struct mutex mutex;
|
||||||
|
|
||||||
@ -104,7 +101,7 @@ struct mt76x2_dev {
|
|||||||
int txpower_cur;
|
int txpower_cur;
|
||||||
|
|
||||||
u8 txdone_seq;
|
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 mt76x2_mcu mcu;
|
||||||
struct sk_buff *rx_head;
|
struct sk_buff *rx_head;
|
||||||
@ -144,17 +141,6 @@ struct mt76x2_dev {
|
|||||||
struct mt76x2_dfs_pattern_detector dfs_pd;
|
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)
|
static inline bool is_mt7612(struct mt76x2_dev *dev)
|
||||||
{
|
{
|
||||||
return mt76_chip(&dev->mt76) == 0x7612;
|
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);
|
int mt76x2_insert_hdr_pad(struct sk_buff *skb);
|
||||||
|
|
||||||
bool mt76x2_mac_load_tx_status(struct mt76x2_dev *dev,
|
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,
|
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_reset_wlan(struct mt76x2_dev *dev, bool enable);
|
||||||
void mt76x2_init_txpower(struct mt76x2_dev *dev,
|
void mt76x2_init_txpower(struct mt76x2_dev *dev,
|
||||||
struct ieee80211_supported_band *sband);
|
struct ieee80211_supported_band *sband);
|
||||||
|
@ -24,7 +24,7 @@ int mt76x2_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
|||||||
enum ieee80211_ampdu_mlme_action action = params->action;
|
enum ieee80211_ampdu_mlme_action action = params->action;
|
||||||
struct ieee80211_sta *sta = params->sta;
|
struct ieee80211_sta *sta = params->sta;
|
||||||
struct mt76x2_dev *dev = hw->priv;
|
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];
|
struct ieee80211_txq *txq = sta->txq[params->tid];
|
||||||
u16 tid = params->tid;
|
u16 tid = params->tid;
|
||||||
u16 *ssn = ¶ms->ssn;
|
u16 *ssn = ¶ms->ssn;
|
||||||
@ -73,7 +73,7 @@ int mt76x2_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
|||||||
struct ieee80211_sta *sta)
|
struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct mt76x2_dev *dev = hw->priv;
|
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;
|
struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int idx = 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 ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct mt76x2_dev *dev = hw->priv;
|
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 idx = msta->wcid.idx;
|
||||||
int i;
|
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 mt76x2_dev *dev = hw->priv;
|
||||||
struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
|
struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
|
||||||
struct mt76x2_sta *msta;
|
struct mt76x02_sta *msta;
|
||||||
struct mt76_wcid *wcid;
|
struct mt76_wcid *wcid;
|
||||||
int idx = key->keyidx;
|
int idx = key->keyidx;
|
||||||
int ret;
|
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))
|
!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
|
||||||
return -EOPNOTSUPP;
|
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;
|
wcid = msta ? &msta->wcid : &mvif->group_wcid;
|
||||||
|
|
||||||
if (cmd == SET_KEY) {
|
if (cmd == SET_KEY) {
|
||||||
@ -256,7 +256,7 @@ void mt76x2_sta_rate_tbl_update(struct ieee80211_hw *hw,
|
|||||||
struct ieee80211_sta *sta)
|
struct ieee80211_sta *sta)
|
||||||
{
|
{
|
||||||
struct mt76x2_dev *dev = hw->priv;
|
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_sta_rates *rates = rcu_dereference(sta->rates);
|
||||||
struct ieee80211_tx_rate rate = {};
|
struct ieee80211_tx_rate rate = {};
|
||||||
|
|
||||||
|
@ -533,7 +533,7 @@ int mt76x2_register_device(struct mt76x2_dev *dev)
|
|||||||
int fifo_size;
|
int fifo_size;
|
||||||
int i, ret;
|
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);
|
status_fifo = devm_kzalloc(dev->mt76.dev, fifo_size, GFP_KERNEL);
|
||||||
if (!status_fifo)
|
if (!status_fifo)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -208,7 +208,7 @@ void mt76x2_init_device(struct mt76x2_dev *dev)
|
|||||||
hw->max_rate_tries = 1;
|
hw->max_rate_tries = 1;
|
||||||
hw->extra_tx_headroom = 2;
|
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);
|
hw->vif_data_size = sizeof(struct mt76x02_vif);
|
||||||
|
|
||||||
ieee80211_hw_set(hw, SUPPORTS_HT_CCK_RATES);
|
ieee80211_hw_set(hw, SUPPORTS_HT_CCK_RATES);
|
||||||
|
@ -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)
|
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;
|
unsigned long flags;
|
||||||
u8 update = 1;
|
u8 update = 1;
|
||||||
bool ret;
|
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)
|
void mt76x2_mac_process_tx_status_fifo(struct mt76x2_dev *dev)
|
||||||
{
|
{
|
||||||
struct mt76x2_tx_status stat;
|
struct mt76x02_tx_status stat;
|
||||||
u8 update = 1;
|
u8 update = 1;
|
||||||
|
|
||||||
while (kfifo_get(&dev->txstatus_fifo, &stat))
|
while (kfifo_get(&dev->txstatus_fifo, &stat))
|
||||||
|
@ -25,17 +25,6 @@ struct mt76x2_sta;
|
|||||||
struct mt76x02_vif;
|
struct mt76x02_vif;
|
||||||
struct mt76x2_txwi;
|
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 {
|
struct mt76x2_tx_info {
|
||||||
unsigned long jiffies;
|
unsigned long jiffies;
|
||||||
u8 tries;
|
u8 tries;
|
||||||
|
@ -54,7 +54,7 @@ void mt76x2_mac_stop(struct mt76x2_dev *dev, bool force)
|
|||||||
EXPORT_SYMBOL_GPL(mt76x2_mac_stop);
|
EXPORT_SYMBOL_GPL(mt76x2_mac_stop);
|
||||||
|
|
||||||
bool mt76x2_mac_load_tx_status(struct mt76x2_dev *dev,
|
bool mt76x2_mac_load_tx_status(struct mt76x2_dev *dev,
|
||||||
struct mt76x2_tx_status *stat)
|
struct mt76x02_tx_status *stat)
|
||||||
{
|
{
|
||||||
u32 stat1, stat2;
|
u32 stat1, stat2;
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ mt76x2_mac_process_tx_rate(struct ieee80211_tx_rate *txrate, u16 rate,
|
|||||||
static void
|
static void
|
||||||
mt76x2_mac_fill_tx_status(struct mt76x2_dev *dev,
|
mt76x2_mac_fill_tx_status(struct mt76x2_dev *dev,
|
||||||
struct ieee80211_tx_info *info,
|
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;
|
struct ieee80211_tx_rate *rate = info->status.rates;
|
||||||
int cur_idx, last_rate;
|
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,
|
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_tx_info info = {};
|
||||||
struct ieee80211_sta *sta = NULL;
|
struct ieee80211_sta *sta = NULL;
|
||||||
struct mt76_wcid *wcid = NULL;
|
struct mt76_wcid *wcid = NULL;
|
||||||
struct mt76x2_sta *msta = NULL;
|
struct mt76x02_sta *msta = NULL;
|
||||||
|
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
if (stat->wcid < ARRAY_SIZE(dev->wcid))
|
if (stat->wcid < ARRAY_SIZE(dev->wcid))
|
||||||
@ -192,7 +192,7 @@ void mt76x2_send_tx_status(struct mt76x2_dev *dev,
|
|||||||
if (wcid) {
|
if (wcid) {
|
||||||
void *priv;
|
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,
|
sta = container_of(priv, struct ieee80211_sta,
|
||||||
drv_priv);
|
drv_priv);
|
||||||
}
|
}
|
||||||
@ -472,7 +472,7 @@ int mt76x2_mac_get_rssi(struct mt76x2_dev *dev, s8 rssi, int chain)
|
|||||||
return rssi;
|
return rssi;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct mt76x2_sta *
|
static struct mt76x02_sta *
|
||||||
mt76x2_rx_get_sta(struct mt76x2_dev *dev, u8 idx)
|
mt76x2_rx_get_sta(struct mt76x2_dev *dev, u8 idx)
|
||||||
{
|
{
|
||||||
struct mt76_wcid *wcid;
|
struct mt76_wcid *wcid;
|
||||||
@ -484,11 +484,11 @@ mt76x2_rx_get_sta(struct mt76x2_dev *dev, u8 idx)
|
|||||||
if (!wcid)
|
if (!wcid)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return container_of(wcid, struct mt76x2_sta, wcid);
|
return container_of(wcid, struct mt76x02_sta, wcid);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct mt76_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)
|
bool unicast)
|
||||||
{
|
{
|
||||||
if (!sta)
|
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 mt76_rx_status *status = (struct mt76_rx_status *) skb->cb;
|
||||||
struct mt76x2_rxwi *rxwi = rxi;
|
struct mt76x2_rxwi *rxwi = rxi;
|
||||||
struct mt76x2_sta *sta;
|
struct mt76x02_sta *sta;
|
||||||
u32 rxinfo = le32_to_cpu(rxwi->rxinfo);
|
u32 rxinfo = le32_to_cpu(rxwi->rxinfo);
|
||||||
u32 ctl = le32_to_cpu(rxwi->ctl);
|
u32 ctl = le32_to_cpu(rxwi->ctl);
|
||||||
u16 rate = le16_to_cpu(rxwi->rate);
|
u16 rate = le16_to_cpu(rxwi->rate);
|
||||||
|
@ -202,7 +202,7 @@ mt76x2_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
|||||||
void
|
void
|
||||||
mt76x2_sta_ps(struct mt76_dev *mdev, struct ieee80211_sta *sta, bool ps)
|
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);
|
struct mt76x2_dev *dev = container_of(mdev, struct mt76x2_dev, mt76);
|
||||||
int idx = msta->wcid.idx;
|
int idx = msta->wcid.idx;
|
||||||
|
|
||||||
|
@ -303,7 +303,7 @@ EXPORT_SYMBOL_GPL(mt76x2_phy_set_band);
|
|||||||
|
|
||||||
int mt76x2_phy_get_min_avg_rssi(struct mt76x2_dev *dev)
|
int mt76x2_phy_get_min_avg_rssi(struct mt76x2_dev *dev)
|
||||||
{
|
{
|
||||||
struct mt76x2_sta *sta;
|
struct mt76x02_sta *sta;
|
||||||
struct mt76_wcid *wcid;
|
struct mt76_wcid *wcid;
|
||||||
int i, j, min_rssi = 0;
|
int i, j, min_rssi = 0;
|
||||||
s8 cur_rssi;
|
s8 cur_rssi;
|
||||||
@ -325,7 +325,7 @@ int mt76x2_phy_get_min_avg_rssi(struct mt76x2_dev *dev)
|
|||||||
if (!wcid)
|
if (!wcid)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
sta = container_of(wcid, struct mt76x2_sta, wcid);
|
sta = container_of(wcid, struct mt76x02_sta, wcid);
|
||||||
spin_lock(&dev->mt76.rx_lock);
|
spin_lock(&dev->mt76.rx_lock);
|
||||||
if (sta->inactive_count++ < 5)
|
if (sta->inactive_count++ < 5)
|
||||||
cur_rssi = ewma_signal_read(&sta->rssi);
|
cur_rssi = ewma_signal_read(&sta->rssi);
|
||||||
|
@ -75,7 +75,7 @@ DEFINE_EVENT(dev_txid_evt, mac_txdone_add,
|
|||||||
|
|
||||||
TRACE_EVENT(mac_txstat_fetch,
|
TRACE_EVENT(mac_txstat_fetch,
|
||||||
TP_PROTO(struct mt76x2_dev *dev,
|
TP_PROTO(struct mt76x2_dev *dev,
|
||||||
struct mt76x2_tx_status *stat),
|
struct mt76x02_tx_status *stat),
|
||||||
|
|
||||||
TP_ARGS(dev, stat),
|
TP_ARGS(dev, stat),
|
||||||
|
|
||||||
|
@ -27,9 +27,9 @@ void mt76x2_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
|
|||||||
struct mt76_wcid *wcid = &dev->global_wcid;
|
struct mt76_wcid *wcid = &dev->global_wcid;
|
||||||
|
|
||||||
if (control->sta) {
|
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;
|
wcid = &msta->wcid;
|
||||||
/* sw encrypted frames */
|
/* sw encrypted frames */
|
||||||
if (!info->control.hw_key && wcid->hw_key_idx != 0xff)
|
if (!info->control.hw_key && wcid->hw_key_idx != 0xff)
|
||||||
|
@ -66,7 +66,7 @@ mt76x2u_set_txinfo(struct sk_buff *skb,
|
|||||||
bool mt76x2u_tx_status_data(struct mt76_dev *mdev, u8 *update)
|
bool mt76x2u_tx_status_data(struct mt76_dev *mdev, u8 *update)
|
||||||
{
|
{
|
||||||
struct mt76x2_dev *dev = container_of(mdev, struct mt76x2_dev, mt76);
|
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))
|
if (!mt76x2_mac_load_tx_status(dev, &stat))
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user