mt76: mt7615: never use an 802.11b CF-End rate on 5GHz
authorFelix Fietkau <nbd@nbd.name>
Wed, 22 Apr 2020 10:25:54 +0000 (12:25 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 12 May 2020 17:52:32 +0000 (19:52 +0200)
Sometimes mt7615_mac_set_timing gets called while the slot time is still
configured to 20. Ensure that in this case it always uses the OFDM CFend
rate.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/mac.c

index 396f11e1bbf6fc51eebac9383abe340e719d2f55..63c7acfd4cc2235fe0867b4cc0c5de490257c1cb 100644 (file)
@@ -117,8 +117,9 @@ void mt7615_mac_set_timing(struct mt7615_phy *phy)
        u32 ofdm = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, 60) |
                   FIELD_PREP(MT_TIMEOUT_VAL_CCA, 24);
        int sifs, offset;
+       bool is_5ghz = phy->mt76->chandef.chan->band == NL80211_BAND_5GHZ;
 
-       if (phy->mt76->chandef.chan->band == NL80211_BAND_5GHZ)
+       if (is_5ghz)
                sifs = 16;
        else
                sifs = 10;
@@ -151,7 +152,7 @@ void mt7615_mac_set_timing(struct mt7615_phy *phy)
                FIELD_PREP(MT_IFS_SIFS, sifs) |
                FIELD_PREP(MT_IFS_SLOT, phy->slottime));
 
-       if (phy->slottime < 20)
+       if (phy->slottime < 20 || is_5ghz)
                val = MT7615_CFEND_RATE_DEFAULT;
        else
                val = MT7615_CFEND_RATE_11B;