diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-04-08 13:34:54 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-08 13:34:54 -0400 |
commit | 0f2df9eac70423838a1f8d410fd3899ddd88317b (patch) | |
tree | 0617f723320d83eca5cef9c964c001014e74213f /net/mac80211/mlme.c | |
parent | 8c11e4ab09ffb975a89802dde0e9aa52a53b8aa5 (diff) | |
parent | 1144601118507f8b3b676a9a392584d216d3f2cc (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into merge
Conflicts:
Documentation/feature-removal-schedule.txt
drivers/net/wireless/ath/ath5k/phy.c
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-tx.c
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 4c189d0be4a3..461167dfa42c 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -447,10 +447,12 @@ static void ieee80211_enable_ps(struct ieee80211_local *local, | |||
447 | if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) | 447 | if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) |
448 | ieee80211_send_nullfunc(local, sdata, 1); | 448 | ieee80211_send_nullfunc(local, sdata, 1); |
449 | 449 | ||
450 | if (!(local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)) { | 450 | if ((local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) && |
451 | conf->flags |= IEEE80211_CONF_PS; | 451 | (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)) |
452 | ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); | 452 | return; |
453 | } | 453 | |
454 | conf->flags |= IEEE80211_CONF_PS; | ||
455 | ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS); | ||
454 | } | 456 | } |
455 | } | 457 | } |
456 | 458 | ||
@@ -569,7 +571,8 @@ void ieee80211_dynamic_ps_enable_work(struct work_struct *work) | |||
569 | (!(ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED))) | 571 | (!(ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED))) |
570 | ieee80211_send_nullfunc(local, sdata, 1); | 572 | ieee80211_send_nullfunc(local, sdata, 1); |
571 | 573 | ||
572 | if (!(local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) || | 574 | if (!((local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) && |
575 | (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)) || | ||
573 | (ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { | 576 | (ifmgd->flags & IEEE80211_STA_NULLFUNC_ACKED)) { |
574 | ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED; | 577 | ifmgd->flags &= ~IEEE80211_STA_NULLFUNC_ACKED; |
575 | local->hw.conf.flags |= IEEE80211_CONF_PS; | 578 | local->hw.conf.flags |= IEEE80211_CONF_PS; |