summaryrefslogtreecommitdiff
path: root/drivers/staging/cw1200/pm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/cw1200/pm.c')
-rw-r--r--drivers/staging/cw1200/pm.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/pm.c b/drivers/staging/cw1200/pm.c
index 550ee1482b1..fc9c2354758 100644
--- a/drivers/staging/cw1200/pm.c
+++ b/drivers/staging/cw1200/pm.c
@@ -274,6 +274,9 @@ int cw1200_wow_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
if (ret)
goto revert5;
+ /* Cancel block ack stat timer */
+ del_timer_sync(&priv->ba_timer);
+
/* Store suspend state */
pm_state->suspend_state = state;
@@ -352,6 +355,13 @@ int cw1200_wow_resume(struct ieee80211_hw *hw)
cw1200_resume_work(priv, &priv->link_id_gc_work,
state->link_id_gc);
+ /* Restart block ack stat */
+ spin_lock_bh(&priv->ba_lock);
+ if (priv->ba_cnt)
+ mod_timer(&priv->ba_timer,
+ jiffies + CW1200_BLOCK_ACK_INTERVAL);
+ spin_unlock_bh(&priv->ba_lock);
+
/* Unlock datapath */
wsm_unlock_tx(priv);