summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/wil6210/main.c
diff options
context:
space:
mode:
authorMaya Erez <qca_merez@qca.qualcomm.com>2016-08-18 16:52:12 +0300
committerKalle Valo <kvalo@qca.qualcomm.com>2016-08-19 13:11:01 +0300
commitf1b7764f8626b5ee7a42b6648427e71111c5cbb5 (patch)
treed8caff8cb721b2a338cda517de900d9914098c96 /drivers/net/wireless/ath/wil6210/main.c
parent0163b03199006a6ba0d2c991c311e8ac93fcb208 (diff)
downloadlinux-f1b7764f8626b5ee7a42b6648427e71111c5cbb5.tar.gz
linux-f1b7764f8626b5ee7a42b6648427e71111c5cbb5.tar.xz
wil6210: fix HALP handling in case of HALP vote time-out
In case HALP vote times out, we need to mask the HALP IRQ, as done in case the interrupt is received, as this interrupt should be set until completion of the low latency operation. Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/wil6210/main.c')
-rw-r--r--drivers/net/wireless/ath/wil6210/main.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c
index 4bc92e54984a..4240e81bcc82 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -1124,13 +1124,16 @@ void wil_halp_vote(struct wil6210_priv *wil)
if (++wil->halp.ref_cnt == 1) {
wil6210_set_halp(wil);
rc = wait_for_completion_timeout(&wil->halp.comp, to_jiffies);
- if (!rc)
+ if (!rc) {
wil_err(wil, "%s: HALP vote timed out\n", __func__);
- else
+ /* Mask HALP as done in case the interrupt is raised */
+ wil6210_mask_halp(wil);
+ } else {
wil_dbg_misc(wil,
"%s: HALP vote completed after %d ms\n",
__func__,
jiffies_to_msecs(to_jiffies - rc));
+ }
}
wil_dbg_misc(wil, "%s: end, HALP ref_cnt (%d)\n", __func__,