In case of Dynamic SMPS enable RTS/CTS for all rates. Signed-off-by: Chaitanya T K <chaitanya.mgit@xxxxxxxxx> --- V3: Moved the check to set_rate. V2: Fix indent and add signoff. --- net/mac80211/rc80211_minstrel_ht.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c index 7430a1d..600208f 100644 --- a/net/mac80211/rc80211_minstrel_ht.c +++ b/net/mac80211/rc80211_minstrel_ht.c @@ -867,7 +867,15 @@ 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 for below cases. + * 1) Handle STA's SMPS State, if Nss > 1. + * a. Use RTS_CTS, if STA is in Dynamic SMPS Mode + * b. Mark Nss > 1 as unsupported, if STA is in static SMPS mode + * 2) 2nd and 3rd Rates, as 1st Rate Failed. + */ + if ((mi->sta->smps_mode == IEEE80211_SMPS_DYNAMIC && + group->streams > 1) || + offset > 0) { ratetbl->rate[offset].count = ratetbl->rate[offset].count_rts; flags |= IEEE80211_TX_RC_USE_RTS_CTS; } -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html