All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

Commit 869717fb authored by Vivek Natarajan's avatar Vivek Natarajan Committed by John W. Linville

mac80211: A couple of fixes to dynamic power save.

a) hw_config() should not be called from siwpower() for the drivers which do not support
   dynamic powersave.
b) IEEE80211_HW_NO_STACK_DYNAMIC_PS needs to be verified in set_associated() also before
   enabling the power save timers.
Signed-off-by: default avatarVivek Natarajan <vnatarajan@atheros.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d063ed0f
......@@ -751,7 +751,8 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata,
bss_info_changed |= BSS_CHANGED_BASIC_RATES;
ieee80211_bss_info_change_notify(sdata, bss_info_changed);
if (local->powersave) {
if (local->powersave &&
!(local->hw.flags & IEEE80211_HW_NO_STACK_DYNAMIC_PS)) {
if (local->dynamic_ps_timeout > 0)
mod_timer(&local->dynamic_ps_timer, jiffies +
msecs_to_jiffies(local->dynamic_ps_timeout));
......
......@@ -865,9 +865,9 @@ set:
local->powersave = ps;
local->dynamic_ps_timeout = timeout;
if (sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED) {
if (!(local->hw.flags & IEEE80211_HW_NO_STACK_DYNAMIC_PS) &&
local->dynamic_ps_timeout > 0)
if (!(local->hw.flags & IEEE80211_HW_NO_STACK_DYNAMIC_PS) &&
(sdata->u.sta.flags & IEEE80211_STA_ASSOCIATED)) {
if (local->dynamic_ps_timeout > 0)
mod_timer(&local->dynamic_ps_timer, jiffies +
msecs_to_jiffies(local->dynamic_ps_timeout));
else {
......@@ -875,8 +875,9 @@ set:
conf->flags |= IEEE80211_CONF_PS;
else
conf->flags &= ~IEEE80211_CONF_PS;
ret = ieee80211_hw_config(local,
IEEE80211_CONF_CHANGE_PS);
}
ret = ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS);
}
return ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment