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>
This commit is contained in:
Maya Erez
2016-08-18 16:52:12 +03:00
committed by Kalle Valo
parent 0163b03199
commit f1b7764f86
3 changed files with 15 additions and 4 deletions

View File

@@ -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__,