ath10k: fix rts profile for second rate series
authorRajkumar Manoharan <rmanohar@qti.qualcomm.com>
Thu, 19 Mar 2015 14:03:29 +0000 (16:03 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 23 Mar 2015 15:03:43 +0000 (17:03 +0200)
By default rts protection is enabled in firmware for the second
rateset. Currently ath10k selects RTS profile (only for software
retries), when legacy stations are associated or asked by mac80211.
On congested environment, when AP is running in HT/VHT mode and
there are no legacy clients associated, this will impact the
robustness. Also enabling RTS protection only for second rateset will
not impact performance on clear environment. Fix that.

Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/mac.c

index f1175a56e9d0da4ae6ab9258a39e2e05b2d46188..2409147d0b0faf40454930bbaae299dde27ea49f 100644 (file)
@@ -881,12 +881,14 @@ static int ath10k_recalc_rtscts_prot(struct ath10k_vif *arvif)
 
        vdev_param = ar->wmi.vdev_param->enable_rtscts;
 
-       if (arvif->use_cts_prot || arvif->num_legacy_stations > 0)
-               rts_cts |= SM(WMI_RTSCTS_ENABLED, WMI_RTSCTS_SET);
+       rts_cts |= SM(WMI_RTSCTS_ENABLED, WMI_RTSCTS_SET);
 
        if (arvif->num_legacy_stations > 0)
                rts_cts |= SM(WMI_RTSCTS_ACROSS_SW_RETRIES,
                              WMI_RTSCTS_PROFILE);
+       else
+               rts_cts |= SM(WMI_RTSCTS_FOR_SECOND_RATESERIES,
+                             WMI_RTSCTS_PROFILE);
 
        return ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
                                         rts_cts);