Commit 0cb065b9 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

wifi: mt76: move rate info in mt76_vif

This is a preliminary patch to introduce mt76_connac3 mac library used
by WiFi7 chipsets (e.g. mt7996).
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent c8e370fe
...@@ -705,6 +705,9 @@ struct mt76_vif { ...@@ -705,6 +705,9 @@ struct mt76_vif {
u8 wmm_idx; u8 wmm_idx;
u8 scan_seq_num; u8 scan_seq_num;
u8 cipher; u8 cipher;
u8 basic_rates_idx;
u8 mcast_rates_idx;
u8 beacon_rates_idx;
}; };
struct mt76_phy { struct mt76_phy {
......
...@@ -1013,7 +1013,7 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi, ...@@ -1013,7 +1013,7 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
u8 band_idx = (info->hw_queue & MT_TX_HW_QUEUE_PHY) >> 2; u8 band_idx = (info->hw_queue & MT_TX_HW_QUEUE_PHY) >> 2;
u8 p_fmt, q_idx, omac_idx = 0, wmm_idx = 0; u8 p_fmt, q_idx, omac_idx = 0, wmm_idx = 0;
bool is_8023 = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP; bool is_8023 = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP;
struct mt7996_vif *mvif; struct mt76_vif *mvif;
u16 tx_count = 15; u16 tx_count = 15;
u32 val; u32 val;
bool beacon = !!(changed & (BSS_CHANGED_BEACON | bool beacon = !!(changed & (BSS_CHANGED_BEACON |
...@@ -1021,11 +1021,11 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi, ...@@ -1021,11 +1021,11 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
bool inband_disc = !!(changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP | bool inband_disc = !!(changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP |
BSS_CHANGED_FILS_DISCOVERY)); BSS_CHANGED_FILS_DISCOVERY));
mvif = vif ? (struct mt7996_vif *)vif->drv_priv : NULL; mvif = vif ? (struct mt76_vif *)vif->drv_priv : NULL;
if (mvif) { if (mvif) {
omac_idx = mvif->mt76.omac_idx; omac_idx = mvif->omac_idx;
wmm_idx = mvif->mt76.wmm_idx; wmm_idx = mvif->wmm_idx;
band_idx = mvif->mt76.band_idx; band_idx = mvif->band_idx;
} }
if (inband_disc) { if (inband_disc) {
......
...@@ -223,9 +223,9 @@ static int mt7996_add_interface(struct ieee80211_hw *hw, ...@@ -223,9 +223,9 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR; vif->offload_flags |= IEEE80211_OFFLOAD_ENCAP_4ADDR;
if (phy->mt76->chandef.chan->band != NL80211_BAND_2GHZ) if (phy->mt76->chandef.chan->band != NL80211_BAND_2GHZ)
mvif->basic_rates_idx = MT7996_BASIC_RATES_TBL + 4; mvif->mt76.basic_rates_idx = MT7996_BASIC_RATES_TBL + 4;
else else
mvif->basic_rates_idx = MT7996_BASIC_RATES_TBL; mvif->mt76.basic_rates_idx = MT7996_BASIC_RATES_TBL;
mt7996_init_bitrate_mask(vif); mt7996_init_bitrate_mask(vif);
...@@ -505,7 +505,7 @@ static u8 ...@@ -505,7 +505,7 @@ static u8
mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif, mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
bool beacon, bool mcast) bool beacon, bool mcast)
{ {
struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
struct mt76_phy *mphy = hw->priv; struct mt76_phy *mphy = hw->priv;
u16 rate; u16 rate;
u8 i, idx, ht; u8 i, idx, ht;
...@@ -517,7 +517,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ...@@ -517,7 +517,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
struct mt7996_dev *dev = mt7996_hw_dev(hw); struct mt7996_dev *dev = mt7996_hw_dev(hw);
/* must odd index */ /* must odd index */
idx = MT7996_BEACON_RATES_TBL + 2 * (mvif->mt76.idx % 20); idx = MT7996_BEACON_RATES_TBL + 2 * (mvif->idx % 20);
mt7996_mac_set_fixed_rate_table(dev, idx, rate); mt7996_mac_set_fixed_rate_table(dev, idx, rate);
return idx; return idx;
} }
...@@ -555,7 +555,7 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw, ...@@ -555,7 +555,7 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
struct ieee80211_bss_conf *info, struct ieee80211_bss_conf *info,
u64 changed) u64 changed)
{ {
struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
struct mt7996_phy *phy = mt7996_hw_phy(hw); struct mt7996_phy *phy = mt7996_hw_phy(hw);
struct mt7996_dev *dev = mt7996_hw_dev(hw); struct mt7996_dev *dev = mt7996_hw_dev(hw);
......
...@@ -604,7 +604,7 @@ static void ...@@ -604,7 +604,7 @@ static void
mt7996_mcu_bss_bmc_tlv(struct sk_buff *skb, struct ieee80211_vif *vif, mt7996_mcu_bss_bmc_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
struct mt7996_phy *phy) struct mt7996_phy *phy)
{ {
struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
struct bss_rate_tlv *bmc; struct bss_rate_tlv *bmc;
struct cfg80211_chan_def *chandef = &phy->mt76->chandef; struct cfg80211_chan_def *chandef = &phy->mt76->chandef;
enum nl80211_band band = chandef->chan->band; enum nl80211_band band = chandef->chan->band;
......
...@@ -128,10 +128,6 @@ struct mt7996_vif { ...@@ -128,10 +128,6 @@ struct mt7996_vif {
struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS]; struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS];
struct cfg80211_bitrate_mask bitrate_mask; struct cfg80211_bitrate_mask bitrate_mask;
u8 basic_rates_idx;
u8 mcast_rates_idx;
u8 beacon_rates_idx;
}; };
/* crash-dump */ /* crash-dump */
......
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