Merge tag 'ntb-4.3' of git://github.com/jonmason/ntb
[firefly-linux-kernel-4.4.55.git] / net / mac80211 / rc80211_minstrel_ht.c
index 543b672335353817334b407fbfc1ff3574625ee6..3928dbd24e257e68627aa977cc54a19aaa996339 100644 (file)
@@ -867,7 +867,13 @@ minstrel_ht_set_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi,
        else
                idx = index % MCS_GROUP_RATES + (group->streams - 1) * 8;
 
-       if (offset > 0) {
+       /* enable RTS/CTS if needed:
+        *  - if station is in dynamic SMPS (and streams > 1)
+        *  - for fallback rates, to increase chances of getting through
+        */
+       if (offset > 0 &&
+           (mi->sta->smps_mode == IEEE80211_SMPS_DYNAMIC &&
+            group->streams > 1)) {
                ratetbl->rate[offset].count = ratetbl->rate[offset].count_rts;
                flags |= IEEE80211_TX_RC_USE_RTS_CTS;
        }