summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBarak Bercovitz <barak@wizery.com>2013-09-09 11:24:41 +0200
committerLuciano Coelho <luciano.coelho@intel.com>2013-10-23 08:47:43 +0200
commit2473ec8f909d8c46e52e13f6fc3215c9c08400c8 (patch)
tree129a5d3ab7de74474acfbdefe91c1b71c5bd49c3
parentwlcore: Allow stopping fw log in recovery (diff)
downloadlinux-2473ec8f909d8c46e52e13f6fc3215c9c08400c8.tar.xz
linux-2473ec8f909d8c46e52e13f6fc3215c9c08400c8.zip
wlcore: wakeup from ELP before starting recovery
Make sure the FW is awake when entering recovery. This is useful for reading the FW panic log and also some FW registers giving us crash report stats. We must do this before interrupts are disabled since we rely on an interrupt to complete the wakeup. If the wakeup fails, continue recovery normally. All read/writes will be blocked and won't do any harm. Signed-off-by: Barak Bercovitz <barak@wizery.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 53bb353e8653..a9ee23417716 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -793,6 +793,7 @@ void wl12xx_queue_recovery_work(struct wl1271 *wl)
if (wl->state == WLCORE_STATE_ON) {
wl->state = WLCORE_STATE_RESTARTING;
set_bit(WL1271_FLAG_RECOVERY_IN_PROGRESS, &wl->flags);
+ wl1271_ps_elp_wakeup(wl);
wlcore_disable_interrupts_nosync(wl);
ieee80211_queue_work(wl->hw, &wl->recovery_work);
}