diff options
Diffstat (limited to 'drivers/staging/cw1200/pm.c')
-rw-r--r-- | drivers/staging/cw1200/pm.c | 10 |
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); |