aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/init.c
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>2012-09-11 12:07:00 +0530
committerKalle Valo <kvalo@qca.qualcomm.com>2012-10-24 11:49:50 +0300
commit58109df67aa073756eb5a2dc2ae068bc1bbcc125 (patch)
tree65408455d7c23ffaef7e973ebba52b2933c67f7e /drivers/net/wireless/ath/ath6kl/init.c
parentath6kl: use list_move_tail instead of list_del/list_add_tail (diff)
downloadlinux-dev-58109df67aa073756eb5a2dc2ae068bc1bbcc125.tar.xz
linux-dev-58109df67aa073756eb5a2dc2ae068bc1bbcc125.zip
ath6kl: Fix reconnection issue after recovery
Disallowing any wmi commands while re-initializing the firmware results in connection failures after recovery is done in open/WEP mode. To fix this, clear WMI_READY, to make sure no wmi command is tried while fw is down. Remove ATH6KL_STATE_RECOVERY state check in ath6kl_control_tx() so that any configuration during fw init time will go through using wmi commands. Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/init.c')
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index 6e270fa6d63b..424676e06b37 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -1697,10 +1697,14 @@ int ath6kl_init_hw_stop(struct ath6kl *ar)
void ath6kl_init_hw_restart(struct ath6kl *ar)
{
+ clear_bit(WMI_READY, &ar->flag);
+
ath6kl_cfg80211_stop_all(ar);
- if (__ath6kl_init_hw_stop(ar))
+ if (__ath6kl_init_hw_stop(ar)) {
+ ath6kl_dbg(ATH6KL_DBG_RECOVERY, "Failed to stop during fw error recovery\n");
return;
+ }
if (__ath6kl_init_hw_start(ar)) {
ath6kl_dbg(ATH6KL_DBG_RECOVERY, "Failed to restart during fw error recovery\n");