Commit 98ff26e5 authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by Kalle Valo

mt76: unify mt76x02_vif struct

Private vif structures definitions are the same for mt76x2 and mt76x0.
Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 459e237f
...@@ -689,7 +689,7 @@ int mt76x0_register_device(struct mt76x0_dev *dev) ...@@ -689,7 +689,7 @@ int mt76x0_register_device(struct mt76x0_dev *dev)
hw->max_rate_tries = 1; hw->max_rate_tries = 1;
hw->sta_data_size = sizeof(struct mt76_sta); hw->sta_data_size = sizeof(struct mt76_sta);
hw->vif_data_size = sizeof(struct mt76_vif); hw->vif_data_size = sizeof(struct mt76x02_vif);
SET_IEEE80211_PERM_ADDR(hw, dev->macaddr); SET_IEEE80211_PERM_ADDR(hw, dev->macaddr);
......
...@@ -56,7 +56,7 @@ static int mt76x0_add_interface(struct ieee80211_hw *hw, ...@@ -56,7 +56,7 @@ static int mt76x0_add_interface(struct ieee80211_hw *hw,
struct ieee80211_vif *vif) struct ieee80211_vif *vif)
{ {
struct mt76x0_dev *dev = hw->priv; struct mt76x0_dev *dev = hw->priv;
struct mt76_vif *mvif = (struct mt76_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
unsigned int idx; unsigned int idx;
idx = ffs(~dev->vif_mask); idx = ffs(~dev->vif_mask);
...@@ -77,7 +77,7 @@ static void mt76x0_remove_interface(struct ieee80211_hw *hw, ...@@ -77,7 +77,7 @@ static void mt76x0_remove_interface(struct ieee80211_hw *hw,
struct ieee80211_vif *vif) struct ieee80211_vif *vif)
{ {
struct mt76x0_dev *dev = hw->priv; struct mt76x0_dev *dev = hw->priv;
struct mt76_vif *mvif = (struct mt76_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
unsigned int wcid = mvif->group_wcid.idx; unsigned int wcid = mvif->group_wcid.idx;
dev->wcid_mask[wcid / BITS_PER_LONG] &= ~BIT(wcid % BITS_PER_LONG); dev->wcid_mask[wcid / BITS_PER_LONG] &= ~BIT(wcid % BITS_PER_LONG);
...@@ -160,7 +160,7 @@ mt76x0_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ...@@ -160,7 +160,7 @@ mt76x0_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
{ {
struct mt76x0_dev *dev = hw->priv; struct mt76x0_dev *dev = hw->priv;
struct mt76_sta *msta = (struct mt76_sta *) sta->drv_priv; struct mt76_sta *msta = (struct mt76_sta *) sta->drv_priv;
struct mt76_vif *mvif = (struct mt76_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;
...@@ -242,7 +242,7 @@ mt76x0_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, ...@@ -242,7 +242,7 @@ mt76x0_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
struct ieee80211_key_conf *key) struct ieee80211_key_conf *key)
{ {
struct mt76x0_dev *dev = hw->priv; struct mt76x0_dev *dev = hw->priv;
struct mt76_vif *mvif = (struct mt76_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
struct mt76_sta *msta = sta ? (struct mt76_sta *) sta->drv_priv : NULL; struct mt76_sta *msta = sta ? (struct mt76_sta *) sta->drv_priv : NULL;
struct mt76_wcid *wcid = msta ? &msta->wcid : &mvif->group_wcid; struct mt76_wcid *wcid = msta ? &msta->wcid : &mvif->group_wcid;
int idx = key->keyidx; int idx = key->keyidx;
......
...@@ -219,12 +219,6 @@ struct mt76x0_wcid { ...@@ -219,12 +219,6 @@ struct mt76x0_wcid {
u8 tx_rate_nss; u8 tx_rate_nss;
}; };
struct mt76_vif {
u8 idx;
struct mt76_wcid group_wcid;
};
struct mt76_tx_status { struct mt76_tx_status {
u8 valid:1; u8 valid:1;
u8 success:1; u8 success:1;
......
...@@ -167,7 +167,7 @@ void mt76x0_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control, ...@@ -167,7 +167,7 @@ void mt76x0_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
msta = (struct mt76_sta *) sta->drv_priv; msta = (struct mt76_sta *) sta->drv_priv;
wcid = &msta->wcid; wcid = &msta->wcid;
} else if (vif && (!info->control.hw_key && wcid->hw_key_idx != 0xff)) { } else if (vif && (!info->control.hw_key && wcid->hw_key_idx != 0xff)) {
struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *)vif->drv_priv;
wcid = &mvif->group_wcid; wcid = &mvif->group_wcid;
} }
......
...@@ -18,6 +18,12 @@ ...@@ -18,6 +18,12 @@
#ifndef __MT76X02_MAC_H #ifndef __MT76X02_MAC_H
#define __MT76X02_MAC_H #define __MT76X02_MAC_H
struct mt76x02_vif {
u8 idx;
struct mt76_wcid group_wcid;
};
static inline bool mt76x02_wait_for_mac(struct mt76_dev *dev) static inline bool mt76x02_wait_for_mac(struct mt76_dev *dev)
{ {
const u32 MAC_CSR0 = 0x1000; const u32 MAC_CSR0 = 0x1000;
......
...@@ -144,16 +144,10 @@ struct mt76x2_dev { ...@@ -144,16 +144,10 @@ struct mt76x2_dev {
struct mt76x2_dfs_pattern_detector dfs_pd; struct mt76x2_dfs_pattern_detector dfs_pd;
}; };
struct mt76x2_vif {
u8 idx;
struct mt76_wcid group_wcid;
};
struct mt76x2_sta { struct mt76x2_sta {
struct mt76_wcid wcid; /* must be first */ struct mt76_wcid wcid; /* must be first */
struct mt76x2_vif *vif; struct mt76x02_vif *vif;
struct mt76x2_tx_status status; struct mt76x2_tx_status status;
int n_frames; int n_frames;
......
...@@ -32,9 +32,9 @@ void mt76x2_txq_init(struct mt76x2_dev *dev, struct ieee80211_txq *txq) ...@@ -32,9 +32,9 @@ void mt76x2_txq_init(struct mt76x2_dev *dev, struct ieee80211_txq *txq)
sta = (struct mt76x2_sta *) txq->sta->drv_priv; sta = (struct mt76x2_sta *) txq->sta->drv_priv;
mtxq->wcid = &sta->wcid; mtxq->wcid = &sta->wcid;
} else { } else {
struct mt76x2_vif *mvif; struct mt76x02_vif *mvif;
mvif = (struct mt76x2_vif *) txq->vif->drv_priv; mvif = (struct mt76x02_vif *) txq->vif->drv_priv;
mtxq->wcid = &mvif->group_wcid; mtxq->wcid = &mvif->group_wcid;
} }
...@@ -98,7 +98,7 @@ int mt76x2_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ...@@ -98,7 +98,7 @@ int mt76x2_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
{ {
struct mt76x2_dev *dev = hw->priv; struct mt76x2_dev *dev = hw->priv;
struct mt76x2_sta *msta = (struct mt76x2_sta *) sta->drv_priv; struct mt76x2_sta *msta = (struct mt76x2_sta *) sta->drv_priv;
struct mt76x2_vif *mvif = (struct mt76x2_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;
int i; int i;
...@@ -169,7 +169,7 @@ int mt76x2_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, ...@@ -169,7 +169,7 @@ int mt76x2_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
struct ieee80211_key_conf *key) struct ieee80211_key_conf *key)
{ {
struct mt76x2_dev *dev = hw->priv; struct mt76x2_dev *dev = hw->priv;
struct mt76x2_vif *mvif = (struct mt76x2_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
struct mt76x2_sta *msta; struct mt76x2_sta *msta;
struct mt76_wcid *wcid; struct mt76_wcid *wcid;
int idx = key->keyidx; int idx = key->keyidx;
......
...@@ -209,7 +209,7 @@ void mt76x2_init_device(struct mt76x2_dev *dev) ...@@ -209,7 +209,7 @@ void mt76x2_init_device(struct mt76x2_dev *dev)
hw->extra_tx_headroom = 2; hw->extra_tx_headroom = 2;
hw->sta_data_size = sizeof(struct mt76x2_sta); hw->sta_data_size = sizeof(struct mt76x2_sta);
hw->vif_data_size = sizeof(struct mt76x2_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);
ieee80211_hw_set(hw, SUPPORTS_REORDERING_BUFFER); ieee80211_hw_set(hw, SUPPORTS_REORDERING_BUFFER);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
struct mt76x2_dev; struct mt76x2_dev;
struct mt76x2_sta; struct mt76x2_sta;
struct mt76x2_vif; struct mt76x02_vif;
struct mt76x2_txwi; struct mt76x2_txwi;
struct mt76x2_tx_status { struct mt76x2_tx_status {
......
...@@ -58,7 +58,7 @@ static int ...@@ -58,7 +58,7 @@ static int
mt76x2_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) mt76x2_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
{ {
struct mt76x2_dev *dev = hw->priv; struct mt76x2_dev *dev = hw->priv;
struct mt76x2_vif *mvif = (struct mt76x2_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
unsigned int idx = 0; unsigned int idx = 0;
if (vif->addr[0] & BIT(1)) if (vif->addr[0] & BIT(1))
...@@ -167,7 +167,7 @@ mt76x2_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ...@@ -167,7 +167,7 @@ mt76x2_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info, u32 changed) struct ieee80211_bss_conf *info, u32 changed)
{ {
struct mt76x2_dev *dev = hw->priv; struct mt76x2_dev *dev = hw->priv;
struct mt76x2_vif *mvif = (struct mt76x2_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
mutex_lock(&dev->mt76.mutex); mutex_lock(&dev->mt76.mutex);
......
...@@ -58,7 +58,7 @@ static void ...@@ -58,7 +58,7 @@ static void
mt76x2_update_beacon_iter(void *priv, u8 *mac, struct ieee80211_vif *vif) mt76x2_update_beacon_iter(void *priv, u8 *mac, struct ieee80211_vif *vif)
{ {
struct mt76x2_dev *dev = (struct mt76x2_dev *) priv; struct mt76x2_dev *dev = (struct mt76x2_dev *) priv;
struct mt76x2_vif *mvif = (struct mt76x2_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
struct sk_buff *skb = NULL; struct sk_buff *skb = NULL;
if (!(dev->beacon_mask & BIT(mvif->idx))) if (!(dev->beacon_mask & BIT(mvif->idx)))
...@@ -76,7 +76,7 @@ mt76x2_add_buffered_bc(void *priv, u8 *mac, struct ieee80211_vif *vif) ...@@ -76,7 +76,7 @@ mt76x2_add_buffered_bc(void *priv, u8 *mac, struct ieee80211_vif *vif)
{ {
struct beacon_bc_data *data = priv; struct beacon_bc_data *data = priv;
struct mt76x2_dev *dev = data->dev; struct mt76x2_dev *dev = data->dev;
struct mt76x2_vif *mvif = (struct mt76x2_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
struct ieee80211_tx_info *info; struct ieee80211_tx_info *info;
struct sk_buff *skb; struct sk_buff *skb;
...@@ -164,7 +164,7 @@ void mt76x2_pre_tbtt_tasklet(unsigned long arg) ...@@ -164,7 +164,7 @@ void mt76x2_pre_tbtt_tasklet(unsigned long arg)
while ((skb = __skb_dequeue(&data.q)) != NULL) { while ((skb = __skb_dequeue(&data.q)) != NULL) {
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
struct ieee80211_vif *vif = info->control.vif; struct ieee80211_vif *vif = info->control.vif;
struct mt76x2_vif *mvif = (struct mt76x2_vif *) vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *) vif->drv_priv;
mt76_dma_tx_queue_skb(&dev->mt76, q, skb, &mvif->group_wcid, mt76_dma_tx_queue_skb(&dev->mt76, q, skb, &mvif->group_wcid,
NULL); NULL);
......
...@@ -37,9 +37,9 @@ void mt76x2_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control, ...@@ -37,9 +37,9 @@ void mt76x2_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
} }
if (vif && !control->sta) { if (vif && !control->sta) {
struct mt76x2_vif *mvif; struct mt76x02_vif *mvif;
mvif = (struct mt76x2_vif *)vif->drv_priv; mvif = (struct mt76x02_vif *)vif->drv_priv;
wcid = &mvif->group_wcid; wcid = &mvif->group_wcid;
} }
......
...@@ -49,7 +49,7 @@ static int mt76x2u_add_interface(struct ieee80211_hw *hw, ...@@ -49,7 +49,7 @@ static int mt76x2u_add_interface(struct ieee80211_hw *hw,
struct ieee80211_vif *vif) struct ieee80211_vif *vif)
{ {
struct mt76x2_dev *dev = hw->priv; struct mt76x2_dev *dev = hw->priv;
struct mt76x2_vif *mvif = (struct mt76x2_vif *)vif->drv_priv; struct mt76x02_vif *mvif = (struct mt76x02_vif *)vif->drv_priv;
unsigned int idx = 0; unsigned int idx = 0;
if (!ether_addr_equal(dev->mt76.macaddr, vif->addr)) if (!ether_addr_equal(dev->mt76.macaddr, vif->addr))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment