wlcore: cancel suspend when recovery is pending
authorArik Nemtsov <arik@wizery.com>
Thu, 21 Jun 2012 15:10:47 +0000 (18:10 +0300)
committerLuciano Coelho <coelho@ti.com>
Fri, 22 Jun 2012 19:54:14 +0000 (22:54 +0300)
We wish to postpone suspend if recovery is pending. This will make sure
the FW is in a good state and perform wowlan wakeup.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/ti/wlcore/main.c

index b0795aac4bac90931561cdb95e0d9616d0fbed24..0df28d5cb331297977c2edef4cce5ca0262d0cbf 100644 (file)
@@ -1661,6 +1661,12 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw,
        wl1271_debug(DEBUG_MAC80211, "mac80211 suspend wow=%d", !!wow);
        WARN_ON(!wow);
 
+       /* we want to perform the recovery before suspending */
+       if (test_bit(WL1271_FLAG_RECOVERY_IN_PROGRESS, &wl->flags)) {
+               wl1271_warning("postponing suspend to perform recovery");
+               return -EBUSY;
+       }
+
        wl1271_tx_flush(wl);
 
        mutex_lock(&wl->mutex);