After last transmission, the device goes to sleep earlier than the configured dynamic power save timeout. If timeout is set to 400ms, device enters into sleep mode at around 330ms since from last TX. This patch re-schedules dynamic power save timer after PSM is disabled, which ensures timeout period starts only after wakeup and the timeout variation is around 2-3ms. Signed-off-by: Saravanan Dhanabal <ext-saravanan.dhanabal@xxxxxxxxx> Reviewed-by: Juuso Oikarinen <juuso.oikarinen@xxxxxxxxx> --- net/mac80211/mlme.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 86c6ad1..f7f3f61 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -537,6 +537,8 @@ void ieee80211_dynamic_ps_disable_work(struct work_struct *work) ieee80211_wake_queues_by_reason(&local->hw, IEEE80211_QUEUE_STOP_REASON_PS); + mod_timer(&local->dynamic_ps_timer, jiffies + + msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); } void ieee80211_dynamic_ps_enable_work(struct work_struct *work) -- 1.7.0 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html