Skip to content

Commit

Permalink
wifi: mt76: mt7996: align the format of fixed rate command
Browse files Browse the repository at this point in the history
Use the new fixed rate command format to let the fixed field function
work normally.

Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
Peter Chiu authored and Felix Fietkau committed Dec 7, 2023
1 parent 8c8f77e commit 22f5dc7
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 8 deletions.
12 changes: 6 additions & 6 deletions drivers/net/wireless/mediatek/mt76/mt7996/mcu.c
Original file line number Diff line number Diff line change
Expand Up @@ -1805,8 +1805,8 @@ int mt7996_mcu_set_fixed_field(struct mt7996_dev *dev, struct ieee80211_vif *vif
{
struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
struct sta_phy *phy = data;
struct sta_rec_ra_fixed *ra;
struct sta_phy_uni *phy = data;
struct sta_rec_ra_fixed_uni *ra;
struct sk_buff *skb;
struct tlv *tlv;

Expand All @@ -1817,7 +1817,7 @@ int mt7996_mcu_set_fixed_field(struct mt7996_dev *dev, struct ieee80211_vif *vif
return PTR_ERR(skb);

tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_RA_UPDATE, sizeof(*ra));
ra = (struct sta_rec_ra_fixed *)tlv;
ra = (struct sta_rec_ra_fixed_uni *)tlv;

switch (field) {
case RATE_PARAM_AUTO:
Expand Down Expand Up @@ -1849,7 +1849,7 @@ mt7996_mcu_add_rate_ctrl_fixed(struct mt7996_dev *dev, struct ieee80211_vif *vif
struct cfg80211_chan_def *chandef = &mvif->phy->mt76->chandef;
struct cfg80211_bitrate_mask *mask = &mvif->bitrate_mask;
enum nl80211_band band = chandef->chan->band;
struct sta_phy phy = {};
struct sta_phy_uni phy = {};
int ret, nrates = 0;

#define __sta_phy_bitrate_mask_check(_mcs, _gi, _ht, _he) \
Expand Down Expand Up @@ -1937,13 +1937,13 @@ mt7996_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7996_dev *dev,
struct cfg80211_chan_def *chandef = &mphy->chandef;
struct cfg80211_bitrate_mask *mask = &mvif->bitrate_mask;
enum nl80211_band band = chandef->chan->band;
struct sta_rec_ra *ra;
struct sta_rec_ra_uni *ra;
struct tlv *tlv;
u32 supp_rate = sta->deflink.supp_rates[band];
u32 cap = sta->wme ? STA_CAP_WMM : 0;

tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_RA, sizeof(*ra));
ra = (struct sta_rec_ra *)tlv;
ra = (struct sta_rec_ra_uni *)tlv;

ra->valid = true;
ra->auto_rate = true;
Expand Down
71 changes: 69 additions & 2 deletions drivers/net/wireless/mediatek/mt76/mt7996/mcu.h
Original file line number Diff line number Diff line change
Expand Up @@ -494,6 +494,73 @@ struct sta_rec_sec_uni {
struct sec_key_uni key[2];
} __packed;

struct sta_phy_uni {
u8 type;
u8 flag;
u8 stbc;
u8 sgi;
u8 bw;
u8 ldpc;
u8 mcs;
u8 nss;
u8 he_ltf;
u8 rsv[3];
};

struct sta_rec_ra_uni {
__le16 tag;
__le16 len;

u8 valid;
u8 auto_rate;
u8 phy_mode;
u8 channel;
u8 bw;
u8 disable_cck;
u8 ht_mcs32;
u8 ht_gf;
u8 ht_mcs[4];
u8 mmps_mode;
u8 gband_256;
u8 af;
u8 auth_wapi_mode;
u8 rate_len;

u8 supp_mode;
u8 supp_cck_rate;
u8 supp_ofdm_rate;
__le32 supp_ht_mcs;
__le16 supp_vht_mcs[4];

u8 op_mode;
u8 op_vht_chan_width;
u8 op_vht_rx_nss;
u8 op_vht_rx_nss_type;

__le32 sta_cap;

struct sta_phy_uni phy;
u8 rx_rcpi[4];
} __packed;

struct sta_rec_ra_fixed_uni {
__le16 tag;
__le16 len;

__le32 field;
u8 op_mode;
u8 op_vht_chan_width;
u8 op_vht_rx_nss;
u8 op_vht_rx_nss_type;

struct sta_phy_uni phy;

u8 spe_idx;
u8 short_preamble;
u8 is_5g;
u8 mmps_mode;
} __packed;

struct sta_rec_hdrt {
__le16 tag;
__le16 len;
Expand Down Expand Up @@ -677,9 +744,9 @@ enum {
sizeof(struct sta_rec_amsdu) + \
sizeof(struct sta_rec_bfee) + \
sizeof(struct sta_rec_phy) + \
sizeof(struct sta_rec_ra) + \
sizeof(struct sta_rec_ra_uni) + \
sizeof(struct sta_rec_sec) + \
sizeof(struct sta_rec_ra_fixed) + \
sizeof(struct sta_rec_ra_fixed_uni) + \
sizeof(struct sta_rec_he_6g_capa) + \
sizeof(struct sta_rec_eht) + \
sizeof(struct sta_rec_hdrt) + \
Expand Down

0 comments on commit 22f5dc7

Please sign in to comment.