summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath10k/wow.c
diff options
context:
space:
mode:
authorWen Gong <wgong@codeaurora.org>2018-08-28 19:48:42 +0300
committerKalle Valo <kvalo@codeaurora.org>2018-09-03 19:57:03 +0300
commit828853ac58265c93249b53ba81782213962d5d4e (patch)
treee66b210659b1148bcb74842eda49e02b076ca744 /drivers/net/wireless/ath/ath10k/wow.c
parent9d5804662ce1f9bdde0a14c3c40940acbbf09538 (diff)
downloadlinux-828853ac58265c93249b53ba81782213962d5d4e.tar.xz
ath10k: add waiting htt tx complete before wow enable
If there are some tx packets pending in firmware, and then system enters suspend, firmware will fail for wow enable. This will trigger mac80211 to stop ath10k and download firmware again, then it is non-wow suspend. After add the waiting htt tx complete, then firmware will have some time window to send or flush the pending tx packets. Tested with QCA6174 PCI with firmware WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377 PCI. It's not a regression with new firmware releases. Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/wow.c')
-rw-r--r--drivers/net/wireless/ath/ath10k/wow.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/wow.c b/drivers/net/wireless/ath/ath10k/wow.c
index a6b179f88d36..af444dfecae9 100644
--- a/drivers/net/wireless/ath/ath10k/wow.c
+++ b/drivers/net/wireless/ath/ath10k/wow.c
@@ -374,6 +374,8 @@ int ath10k_wow_op_suspend(struct ieee80211_hw *hw,
goto cleanup;
}
+ ath10k_mac_wait_tx_complete(ar);
+
ret = ath10k_wow_enable(ar);
if (ret) {
ath10k_warn(ar, "failed to start wow: %d\n", ret);