> From: Ben Greear <greearb@xxxxxxxxxxxxxxx> > > Do not initialize rix to -1, build the rix and set flags > based on the mcs, nss, and mode. > > Signed-off-by: Ben Greear <greearb@xxxxxxxxxxxxxxx> > --- > drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c > index edf33540658e..300928edd0d7 100644 > --- a/drivers/net/wireless/mediatek/mt76/mt7915/mac.c > +++ b/drivers/net/wireless/mediatek/mt76/mt7915/mac.c > @@ -1571,7 +1571,7 @@ mt7915_mac_add_txs_skb(struct mt7915_dev *dev, struct mt76_wcid *wcid, int pid, > struct ieee80211_supported_band *sband; > struct mt76_dev *mdev = &dev->mt76; > struct mt76_phy *mphy; > - struct ieee80211_tx_info *info; > + struct ieee80211_tx_info *info = NULL; > struct sk_buff_head list; > struct rate_info rate = {}; > struct sk_buff *skb = NULL; > @@ -1596,8 +1596,6 @@ mt7915_mac_add_txs_skb(struct mt7915_dev *dev, struct mt76_wcid *wcid, int pid, > info->status.ampdu_len = 1; > info->status.ampdu_ack_len = !!(info->flags & > IEEE80211_TX_STAT_ACK); > - > - info->status.rates[0].idx = -1; > } > > txrate = FIELD_GET(MT_TXS0_TX_RATE, txs); > @@ -1627,6 +1625,8 @@ mt7915_mac_add_txs_skb(struct mt7915_dev *dev, struct mt76_wcid *wcid, int pid, > > rate.mcs = mt76_get_rate(mphy->dev, sband, rate.mcs, cck); > rate.legacy = sband->bitrates[rate.mcs].bitrate; > + if (info) > + info->status.rates[0].idx = rate.mcs; can it be NULL? > break; > case MT_PHY_TYPE_HT: > case MT_PHY_TYPE_HT_GF: > @@ -1637,6 +1637,10 @@ mt7915_mac_add_txs_skb(struct mt7915_dev *dev, struct mt76_wcid *wcid, int pid, > rate.flags = RATE_INFO_FLAGS_MCS; > if (wcid->rate_short_gi) > rate.flags |= RATE_INFO_FLAGS_SHORT_GI; > + if (info) { > + info->status.rates[0].idx = rate.mcs + rate.nss * 8; > + info->status.rates[0].flags |= IEEE80211_TX_RC_MCS; > + } > break; > case MT_PHY_TYPE_VHT: > if (rate.mcs > 9) > @@ -1645,6 +1649,10 @@ mt7915_mac_add_txs_skb(struct mt7915_dev *dev, struct mt76_wcid *wcid, int pid, > rate.flags = RATE_INFO_FLAGS_VHT_MCS; > if (wcid->rate_short_gi) > rate.flags |= RATE_INFO_FLAGS_SHORT_GI; > + if (info) { > + info->status.rates[0].idx = (rate.nss << 4) | rate.mcs; ieee80211_rate_set_vht() > + info->status.rates[0].flags |= IEEE80211_TX_RC_VHT_MCS; > + } > break; > case MT_PHY_TYPE_HE_SU: > case MT_PHY_TYPE_HE_EXT_SU: > @@ -1656,6 +1664,8 @@ mt7915_mac_add_txs_skb(struct mt7915_dev *dev, struct mt76_wcid *wcid, int pid, > rate.he_gi = wcid->rate_he_gi; > rate.he_dcm = FIELD_GET(MT_TX_RATE_DCM, txrate); > rate.flags = RATE_INFO_FLAGS_HE_MCS; > + if (info) > + info->status.rates[0].idx = (rate.nss << 4) | rate.mcs; > break; > default: > WARN_ON_ONCE(true); > -- > 2.20.1 >
Attachment:
signature.asc
Description: PGP signature