ath10k: ensure pktlog disable cmd reaches fw before pdev suspend
authorRaja Mani <rmani@qti.qualcomm.com>
Thu, 9 Jul 2015 08:49:42 +0000 (14:19 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Wed, 19 Aug 2015 10:09:07 +0000 (13:09 +0300)
Found incorrect sequence in ath10k_core_stop() where wmi pktlog
disable cmd is passed from ath10k_debug_stop() to firmware
immediately after wmi pdev suspend cmd. Firmware will not accept
any wmi cmd after receiving wmi pdev suspend cmd.

Fix this issue in ath10k_core_stop() by moving ath10k_debug_stop()
just before sending pdev suspend cmd. So that pktlog disable cmd
will get passed before pdev suspend cmd.

Signed-off-by: Raja Mani <rmani@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/core.c

index 2efd4e4dd09008abe6fce1d726dec9f97023f65c..7e378c2fa414d56d5c68447fd1bdc72feac3c532 100644 (file)
@@ -1416,13 +1416,13 @@ int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt)
 void ath10k_core_stop(struct ath10k *ar)
 {
        lockdep_assert_held(&ar->conf_mutex);
+       ath10k_debug_stop(ar);
 
        /* try to suspend target */
        if (ar->state != ATH10K_STATE_RESTARTING &&
            ar->state != ATH10K_STATE_UTF)
                ath10k_wait_for_suspend(ar, WMI_PDEV_SUSPEND_AND_DISABLE_INTR);
 
-       ath10k_debug_stop(ar);
        ath10k_hif_stop(ar);
        ath10k_htt_tx_free(&ar->htt);
        ath10k_htt_rx_free(&ar->htt);