mt76: mt7915: introduce mt76_vif in mt7915_vif

Align mt7915_vif layout to mt7921_vif and mt7615_vif

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Lorenzo Bianconi 2021-12-14 11:41:06 +01:00 committed by Felix Fietkau
parent 81a88b1e75
commit 6cf4392f24
5 changed files with 55 additions and 54 deletions

View File

@ -355,8 +355,8 @@ mt7915_sta_hw_queue_read(void *data, struct ieee80211_sta *sta)
qlen = mt76_get_field(dev, MT_PLE_BASE + MT_FL_Q3_CTRL, qlen = mt76_get_field(dev, MT_PLE_BASE + MT_FL_Q3_CTRL,
GENMASK(11, 0)); GENMASK(11, 0));
seq_printf(s, "\tSTA %pM wcid %d: AC%d%d queued:%d\n", seq_printf(s, "\tSTA %pM wcid %d: AC%d%d queued:%d\n",
sta->addr, msta->wcid.idx, msta->vif->wmm_idx, sta->addr, msta->wcid.idx,
ac, qlen); msta->vif->mt76.wmm_idx, ac, qlen);
} }
} }

View File

@ -1149,8 +1149,8 @@ void mt7915_mac_write_txwi(struct mt7915_dev *dev, __le32 *txwi,
if (vif) { if (vif) {
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
omac_idx = mvif->omac_idx; omac_idx = mvif->mt76.omac_idx;
wmm_idx = mvif->wmm_idx; wmm_idx = mvif->mt76.wmm_idx;
} }
if (ext_phy && dev->mt76.phy2) if (ext_phy && dev->mt76.phy2)
@ -1286,7 +1286,7 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
if (vif) { if (vif) {
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
txp->bss_idx = mvif->idx; txp->bss_idx = mvif->mt76.idx;
} }
txp->token = cpu_to_le16(id); txp->token = cpu_to_le16(id);

View File

@ -203,8 +203,8 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
is_zero_ether_addr(vif->addr)) is_zero_ether_addr(vif->addr))
phy->monitor_vif = vif; phy->monitor_vif = vif;
mvif->idx = ffs(~dev->mt76.vif_mask) - 1; mvif->mt76.idx = ffs(~dev->mt76.vif_mask) - 1;
if (mvif->idx >= MT7915_MAX_INTERFACES) { if (mvif->mt76.idx >= MT7915_MAX_INTERFACES) {
ret = -ENOSPC; ret = -ENOSPC;
goto out; goto out;
} }
@ -214,27 +214,27 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
ret = -ENOSPC; ret = -ENOSPC;
goto out; goto out;
} }
mvif->omac_idx = idx; mvif->mt76.omac_idx = idx;
mvif->phy = phy; mvif->phy = phy;
mvif->band_idx = ext_phy; mvif->mt76.band_idx = ext_phy;
mvif->wmm_idx = vif->type != NL80211_IFTYPE_AP; mvif->mt76.wmm_idx = vif->type != NL80211_IFTYPE_AP;
if (ext_phy) if (ext_phy)
mvif->wmm_idx += 2; mvif->mt76.wmm_idx += 2;
ret = mt7915_mcu_add_dev_info(phy, vif, true); ret = mt7915_mcu_add_dev_info(phy, vif, true);
if (ret) if (ret)
goto out; goto out;
dev->mt76.vif_mask |= BIT(mvif->idx); dev->mt76.vif_mask |= BIT(mvif->mt76.idx);
phy->omac_mask |= BIT_ULL(mvif->omac_idx); phy->omac_mask |= BIT_ULL(mvif->mt76.omac_idx);
idx = MT7915_WTBL_RESERVED - mvif->idx; idx = MT7915_WTBL_RESERVED - mvif->mt76.idx;
INIT_LIST_HEAD(&mvif->sta.rc_list); INIT_LIST_HEAD(&mvif->sta.rc_list);
INIT_LIST_HEAD(&mvif->sta.poll_list); INIT_LIST_HEAD(&mvif->sta.poll_list);
mvif->sta.wcid.idx = idx; mvif->sta.wcid.idx = idx;
mvif->sta.wcid.ext_phy = mvif->band_idx; mvif->sta.wcid.ext_phy = mvif->mt76.band_idx;
mvif->sta.wcid.hw_key_idx = -1; mvif->sta.wcid.hw_key_idx = -1;
mvif->sta.wcid.tx_info |= MT_WCID_TX_INFO_SET; mvif->sta.wcid.tx_info |= MT_WCID_TX_INFO_SET;
mt76_packet_id_init(&mvif->sta.wcid); mt76_packet_id_init(&mvif->sta.wcid);
@ -249,7 +249,7 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
} }
if (vif->type != NL80211_IFTYPE_AP && if (vif->type != NL80211_IFTYPE_AP &&
(!mvif->omac_idx || mvif->omac_idx > 3)) (!mvif->mt76.omac_idx || mvif->mt76.omac_idx > 3))
vif->offload_flags = 0; vif->offload_flags = 0;
vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR; vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
@ -286,8 +286,8 @@ static void mt7915_remove_interface(struct ieee80211_hw *hw,
rcu_assign_pointer(dev->mt76.wcid[idx], NULL); rcu_assign_pointer(dev->mt76.wcid[idx], NULL);
mutex_lock(&dev->mt76.mutex); mutex_lock(&dev->mt76.mutex);
dev->mt76.vif_mask &= ~BIT(mvif->idx); dev->mt76.vif_mask &= ~BIT(mvif->mt76.idx);
phy->omac_mask &= ~BIT_ULL(mvif->omac_idx); phy->omac_mask &= ~BIT_ULL(mvif->mt76.omac_idx);
mutex_unlock(&dev->mt76.mutex); mutex_unlock(&dev->mt76.mutex);
spin_lock_bh(&dev->sta_poll_lock); spin_lock_bh(&dev->sta_poll_lock);
@ -576,7 +576,7 @@ mt7915_update_bss_color(struct ieee80211_hw *hw,
case NL80211_IFTYPE_AP: { case NL80211_IFTYPE_AP: {
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
if (mvif->omac_idx > HW_BSSID_MAX) if (mvif->mt76.omac_idx > HW_BSSID_MAX)
return; return;
fallthrough; fallthrough;
} }
@ -675,7 +675,7 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
msta->vif = mvif; msta->vif = mvif;
msta->wcid.sta = 1; msta->wcid.sta = 1;
msta->wcid.idx = idx; msta->wcid.idx = idx;
msta->wcid.ext_phy = mvif->band_idx; msta->wcid.ext_phy = mvif->mt76.band_idx;
msta->wcid.tx_info |= MT_WCID_TX_INFO_SET; msta->wcid.tx_info |= MT_WCID_TX_INFO_SET;
msta->jiffies = jiffies; msta->jiffies = jiffies;
@ -858,7 +858,8 @@ u64 __mt7915_get_tsf(struct ieee80211_hw *hw, struct mt7915_vif *mvif)
lockdep_assert_held(&dev->mt76.mutex); lockdep_assert_held(&dev->mt76.mutex);
n = mvif->omac_idx > HW_BSSID_MAX ? HW_BSSID_0 : mvif->omac_idx; n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
: mvif->mt76.omac_idx;
/* TSF software read */ /* TSF software read */
mt76_rmw(dev, MT_LPON_TCR(band, n), MT_LPON_TCR_SW_MODE, mt76_rmw(dev, MT_LPON_TCR(band, n), MT_LPON_TCR_SW_MODE,
MT_LPON_TCR_SW_READ); MT_LPON_TCR_SW_READ);
@ -898,7 +899,8 @@ mt7915_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
mutex_lock(&dev->mt76.mutex); mutex_lock(&dev->mt76.mutex);
n = mvif->omac_idx > HW_BSSID_MAX ? HW_BSSID_0 : mvif->omac_idx; n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
: mvif->mt76.omac_idx;
mt76_wr(dev, MT_LPON_UTTR0(band), tsf.t32[0]); mt76_wr(dev, MT_LPON_UTTR0(band), tsf.t32[0]);
mt76_wr(dev, MT_LPON_UTTR1(band), tsf.t32[1]); mt76_wr(dev, MT_LPON_UTTR1(band), tsf.t32[1]);
/* TSF software overwrite */ /* TSF software overwrite */
@ -924,7 +926,8 @@ mt7915_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
mutex_lock(&dev->mt76.mutex); mutex_lock(&dev->mt76.mutex);
n = mvif->omac_idx > HW_BSSID_MAX ? HW_BSSID_0 : mvif->omac_idx; n = mvif->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
: mvif->mt76.omac_idx;
mt76_wr(dev, MT_LPON_UTTR0(band), tsf.t32[0]); mt76_wr(dev, MT_LPON_UTTR0(band), tsf.t32[0]);
mt76_wr(dev, MT_LPON_UTTR1(band), tsf.t32[1]); mt76_wr(dev, MT_LPON_UTTR1(band), tsf.t32[1]);
/* TSF software adjust*/ /* TSF software adjust*/
@ -1215,7 +1218,7 @@ static void mt7915_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
struct mt76_ethtool_worker_info *wi = wi_data; struct mt76_ethtool_worker_info *wi = wi_data;
struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv; struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
if (msta->vif->idx != wi->idx) if (msta->vif->mt76.idx != wi->idx)
return; return;
mt76_ethtool_worker(wi, &msta->stats); mt76_ethtool_worker(wi, &msta->stats);
@ -1231,7 +1234,7 @@ void mt7915_get_et_stats(struct ieee80211_hw *hw,
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
struct mt76_ethtool_worker_info wi = { struct mt76_ethtool_worker_info wi = {
.data = data, .data = data,
.idx = mvif->idx, .idx = mvif->mt76.idx,
}; };
struct mib_stats *mib = &phy->mib; struct mib_stats *mib = &phy->mib;
/* See mt7915_ampdu_stat_read_phy, etc */ /* See mt7915_ampdu_stat_read_phy, etc */

View File

@ -582,10 +582,10 @@ mt7915_mcu_alloc_sta_req(struct mt7915_dev *dev, struct mt7915_vif *mvif,
struct mt7915_sta *msta, int len) struct mt7915_sta *msta, int len)
{ {
struct sta_req_hdr hdr = { struct sta_req_hdr hdr = {
.bss_idx = mvif->idx, .bss_idx = mvif->mt76.idx,
.wlan_idx_lo = msta ? to_wcid_lo(msta->wcid.idx) : 0, .wlan_idx_lo = msta ? to_wcid_lo(msta->wcid.idx) : 0,
.wlan_idx_hi = msta ? to_wcid_hi(msta->wcid.idx) : 0, .wlan_idx_hi = msta ? to_wcid_hi(msta->wcid.idx) : 0,
.muar_idx = msta && msta->wcid.sta ? mvif->omac_idx : 0xe, .muar_idx = msta && msta->wcid.sta ? mvif->mt76.omac_idx : 0xe,
.is_tlv_append = 1, .is_tlv_append = 1,
}; };
struct sk_buff *skb; struct sk_buff *skb;
@ -725,7 +725,7 @@ mt7915_mcu_bss_basic_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
bss->network_type = cpu_to_le32(type); bss->network_type = cpu_to_le32(type);
bss->bmc_wcid_lo = to_wcid_lo(wlan_idx); bss->bmc_wcid_lo = to_wcid_lo(wlan_idx);
bss->bmc_wcid_hi = to_wcid_hi(wlan_idx); bss->bmc_wcid_hi = to_wcid_hi(wlan_idx);
bss->wmm_idx = mvif->wmm_idx; bss->wmm_idx = mvif->mt76.wmm_idx;
bss->active = enable; bss->active = enable;
if (vif->type != NL80211_IFTYPE_MONITOR) { if (vif->type != NL80211_IFTYPE_MONITOR) {
@ -769,10 +769,11 @@ mt7915_mcu_bss_omac_tlv(struct sk_buff *skb, struct ieee80211_vif *vif)
} }
omac = (struct bss_info_omac *)tlv; omac = (struct bss_info_omac *)tlv;
idx = mvif->omac_idx > EXT_BSSID_START ? HW_BSSID_0 : mvif->omac_idx; idx = mvif->mt76.omac_idx > EXT_BSSID_START ? HW_BSSID_0
: mvif->mt76.omac_idx;
omac->conn_type = cpu_to_le32(type); omac->conn_type = cpu_to_le32(type);
omac->omac_idx = mvif->omac_idx; omac->omac_idx = mvif->mt76.omac_idx;
omac->band_idx = mvif->band_idx; omac->band_idx = mvif->mt76.band_idx;
omac->hw_bss_idx = idx; omac->hw_bss_idx = idx;
} }
@ -937,7 +938,7 @@ mt7915_mcu_bss_ext_tlv(struct sk_buff *skb, struct mt7915_vif *mvif)
int ext_bss_idx, tsf_offset; int ext_bss_idx, tsf_offset;
struct tlv *tlv; struct tlv *tlv;
ext_bss_idx = mvif->omac_idx - EXT_BSSID_START; ext_bss_idx = mvif->mt76.omac_idx - EXT_BSSID_START;
if (ext_bss_idx < 0) if (ext_bss_idx < 0)
return; return;
@ -973,7 +974,7 @@ mt7915_mcu_muar_config(struct mt7915_phy *phy, struct ieee80211_vif *vif,
{ {
struct mt7915_dev *dev = phy->dev; struct mt7915_dev *dev = phy->dev;
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
u32 idx = mvif->omac_idx - REPEATER_BSSID_START; u32 idx = mvif->mt76.omac_idx - REPEATER_BSSID_START;
u32 mask = phy->omac_mask >> 32 & ~BIT(idx); u32 mask = phy->omac_mask >> 32 & ~BIT(idx);
const u8 *addr = vif->addr; const u8 *addr = vif->addr;
struct { struct {
@ -1011,7 +1012,7 @@ int mt7915_mcu_add_bss_info(struct mt7915_phy *phy,
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
struct sk_buff *skb; struct sk_buff *skb;
if (mvif->omac_idx >= REPEATER_BSSID_START) { if (mvif->mt76.omac_idx >= REPEATER_BSSID_START) {
mt7915_mcu_muar_config(phy, vif, false, enable); mt7915_mcu_muar_config(phy, vif, false, enable);
mt7915_mcu_muar_config(phy, vif, true, enable); mt7915_mcu_muar_config(phy, vif, true, enable);
} }
@ -1039,8 +1040,8 @@ int mt7915_mcu_add_bss_info(struct mt7915_phy *phy,
if (vif->bss_conf.he_support) if (vif->bss_conf.he_support)
mt7915_mcu_bss_he_tlv(skb, vif, phy); mt7915_mcu_bss_he_tlv(skb, vif, phy);
if (mvif->omac_idx >= EXT_BSSID_START && if (mvif->mt76.omac_idx >= EXT_BSSID_START &&
mvif->omac_idx < REPEATER_BSSID_START) mvif->mt76.omac_idx < REPEATER_BSSID_START)
mt7915_mcu_bss_ext_tlv(skb, mvif); mt7915_mcu_bss_ext_tlv(skb, mvif);
} }
out: out:
@ -1265,7 +1266,7 @@ mt7915_mcu_wtbl_generic_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
if (sta) { if (sta) {
memcpy(generic->peer_addr, sta->addr, ETH_ALEN); memcpy(generic->peer_addr, sta->addr, ETH_ALEN);
generic->partial_aid = cpu_to_le16(sta->aid); generic->partial_aid = cpu_to_le16(sta->aid);
generic->muar_idx = mvif->omac_idx; generic->muar_idx = mvif->mt76.omac_idx;
generic->qos = sta->wme; generic->qos = sta->wme;
} else { } else {
/* use BSSID in station mode */ /* use BSSID in station mode */
@ -1928,7 +1929,7 @@ mt7915_mcu_sta_bfer_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
{ {
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
struct mt7915_phy *phy = struct mt7915_phy *phy =
mvif->band_idx ? mt7915_ext_phy(dev) : &dev->phy; mvif->mt76.band_idx ? mt7915_ext_phy(dev) : &dev->phy;
int tx_ant = hweight8(phy->mt76->chainmask) - 1; int tx_ant = hweight8(phy->mt76->chainmask) - 1;
struct sta_rec_bf *bf; struct sta_rec_bf *bf;
struct tlv *tlv; struct tlv *tlv;
@ -1995,7 +1996,7 @@ mt7915_mcu_sta_bfee_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
{ {
struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
struct mt7915_phy *phy = struct mt7915_phy *phy =
mvif->band_idx ? mt7915_ext_phy(dev) : &dev->phy; mvif->mt76.band_idx ? mt7915_ext_phy(dev) : &dev->phy;
int tx_ant = hweight8(phy->mt76->chainmask) - 1; int tx_ant = hweight8(phy->mt76->chainmask) - 1;
struct sta_rec_bfee *bfee; struct sta_rec_bfee *bfee;
struct tlv *tlv; struct tlv *tlv;
@ -2349,7 +2350,7 @@ mt7915_mcu_add_group(struct mt7915_dev *dev, struct ieee80211_vif *vif,
u8 rsv1[8]; u8 rsv1[8];
} __packed req = { } __packed req = {
.action = cpu_to_le32(MT_STA_BSS_GROUP), .action = cpu_to_le32(MT_STA_BSS_GROUP),
.val = cpu_to_le32(mvif->idx % 16), .val = cpu_to_le32(mvif->mt76.idx % 16),
}; };
msta = sta ? (struct mt7915_sta *)sta->drv_priv : &mvif->sta; msta = sta ? (struct mt7915_sta *)sta->drv_priv : &mvif->sta;
@ -2437,8 +2438,8 @@ int mt7915_mcu_add_dev_info(struct mt7915_phy *phy,
} __packed tlv; } __packed tlv;
} data = { } data = {
.hdr = { .hdr = {
.omac_idx = mvif->omac_idx, .omac_idx = mvif->mt76.omac_idx,
.dbdc_idx = mvif->band_idx, .dbdc_idx = mvif->mt76.band_idx,
.tlv_num = cpu_to_le16(1), .tlv_num = cpu_to_le16(1),
.is_tlv_append = 1, .is_tlv_append = 1,
}, },
@ -2446,11 +2447,11 @@ int mt7915_mcu_add_dev_info(struct mt7915_phy *phy,
.tag = cpu_to_le16(DEV_INFO_ACTIVE), .tag = cpu_to_le16(DEV_INFO_ACTIVE),
.len = cpu_to_le16(sizeof(struct req_tlv)), .len = cpu_to_le16(sizeof(struct req_tlv)),
.active = enable, .active = enable,
.dbdc_idx = mvif->band_idx, .dbdc_idx = mvif->mt76.band_idx,
}, },
}; };
if (mvif->omac_idx >= REPEATER_BSSID_START) if (mvif->mt76.omac_idx >= REPEATER_BSSID_START)
return mt7915_mcu_muar_config(phy, vif, false, enable); return mt7915_mcu_muar_config(phy, vif, false, enable);
memcpy(data.tlv.omac_addr, vif->addr, ETH_ALEN); memcpy(data.tlv.omac_addr, vif->addr, ETH_ALEN);
@ -2622,7 +2623,7 @@ int mt7915_mcu_add_beacon(struct ieee80211_hw *hw,
return -EINVAL; return -EINVAL;
} }
if (mvif->band_idx) { if (mvif->mt76.band_idx) {
info = IEEE80211_SKB_CB(skb); info = IEEE80211_SKB_CB(skb);
info->hw_queue |= MT_TX_HW_QUEUE_EXT_PHY; info->hw_queue |= MT_TX_HW_QUEUE_EXT_PHY;
} }
@ -3243,7 +3244,7 @@ int mt7915_mcu_set_tx(struct mt7915_dev *dev, struct ieee80211_vif *vif)
struct edca *e = &req.edca[ac]; struct edca *e = &req.edca[ac];
e->set = WMM_PARAM_SET; e->set = WMM_PARAM_SET;
e->queue = ac + mvif->wmm_idx * MT7915_MAX_WMM_SETS; e->queue = ac + mvif->mt76.wmm_idx * MT7915_MAX_WMM_SETS;
e->aifs = q->aifs; e->aifs = q->aifs;
e->txop = cpu_to_le16(q->txop); e->txop = cpu_to_le16(q->txop);
@ -4048,7 +4049,7 @@ int mt7915_mcu_add_obss_spr(struct mt7915_dev *dev, struct ieee80211_vif *vif,
} __packed req = { } __packed req = {
.action = MT_SPR_ENABLE, .action = MT_SPR_ENABLE,
.arg_num = 1, .arg_num = 1,
.band_idx = mvif->band_idx, .band_idx = mvif->mt76.band_idx,
.val = cpu_to_le32(enable), .val = cpu_to_le32(enable),
}; };
@ -4069,7 +4070,7 @@ int mt7915_mcu_get_rx_rate(struct mt7915_phy *phy, struct ieee80211_vif *vif,
__le16 wcid; __le16 wcid;
} __packed req = { } __packed req = {
.category = MCU_PHY_STATE_CONTENTION_RX_RATE, .category = MCU_PHY_STATE_CONTENTION_RX_RATE,
.band = mvif->band_idx, .band = mvif->mt76.band_idx,
.wcid = cpu_to_le16(msta->wcid.idx), .wcid = cpu_to_le16(msta->wcid.idx),
}; };
struct ieee80211_supported_band *sband; struct ieee80211_supported_band *sband;
@ -4209,11 +4210,11 @@ int mt7915_mcu_twt_agrt_update(struct mt7915_dev *dev,
} __packed req = { } __packed req = {
.tbl_idx = flow->table_id, .tbl_idx = flow->table_id,
.cmd = cmd, .cmd = cmd,
.own_mac_idx = mvif->omac_idx, .own_mac_idx = mvif->mt76.omac_idx,
.flowid = flow->id, .flowid = flow->id,
.peer_id = cpu_to_le16(flow->wcid), .peer_id = cpu_to_le16(flow->wcid),
.duration = flow->duration, .duration = flow->duration,
.bss_idx = mvif->idx, .bss_idx = mvif->mt76.idx,
.start_tsf = cpu_to_le64(flow->tsf), .start_tsf = cpu_to_le64(flow->tsf),
.mantissa = flow->mantissa, .mantissa = flow->mantissa,
.exponent = flow->exp, .exponent = flow->exp,

View File

@ -124,10 +124,7 @@ struct mt7915_vif_cap {
}; };
struct mt7915_vif { struct mt7915_vif {
u16 idx; struct mt76_vif mt76; /* must be first */
u8 omac_idx;
u8 band_idx;
u8 wmm_idx;
struct mt7915_vif_cap cap; struct mt7915_vif_cap cap;
struct mt7915_sta sta; struct mt7915_sta sta;