ath10k: disable burst mode
authorJanusz Dziedzic <janusz.dziedzic@tieto.com>
Wed, 1 Apr 2015 19:53:18 +0000 (22:53 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 9 Apr 2015 11:53:50 +0000 (14:53 +0300)
Firmwares that indicate BURST_SERVICE as enabled
could overwrite some wmm parameters (eg. txop).
This could lead IOT and balancing issues.
Hence disable this by default.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/mac.c

index 6e04cbf..2eead65 100644 (file)
@@ -3678,6 +3678,7 @@ static int ath10k_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
 static int ath10k_start(struct ieee80211_hw *hw)
 {
        struct ath10k *ar = hw->priv;
+       u32 burst_enable;
        int ret = 0;
 
        /*
@@ -3741,6 +3742,15 @@ static int ath10k_start(struct ieee80211_hw *hw)
                }
        }
 
+       if (test_bit(WMI_SERVICE_BURST, ar->wmi.svc_map)) {
+               burst_enable = ar->wmi.pdev_param->burst_enable;
+               ret = ath10k_wmi_pdev_set_param(ar, burst_enable, 0);
+               if (ret) {
+                       ath10k_warn(ar, "failed to disable burst: %d\n", ret);
+                       goto err_core_stop;
+               }
+       }
+
        if (ar->cfg_tx_chainmask)
                __ath10k_set_antenna(ar, ar->cfg_tx_chainmask,
                                     ar->cfg_rx_chainmask);