summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDaniel Halperin <dhalperi@cs.washington.edu>2010-01-19 19:22:19 +0100
committerReinette Chatre <reinette.chatre@intel.com>2010-01-29 20:13:19 +0100
commit49dcc819b077c2d473062e17d5a1373a8b660e02 (patch)
tree79a2869a213ef3fc9ba2c9cb3cac8f74fb1ca180 /drivers
parentath9k: Handle full sleep in ps_restore. (diff)
downloadlinux-49dcc819b077c2d473062e17d5a1373a8b660e02.tar.xz
linux-49dcc819b077c2d473062e17d5a1373a8b660e02.zip
iwlwifi: optimize power saving
In hostap AP mode, every time the client sends the AP a packet the STA_NOTIFY_AWAKE code is sent from mac80211. This results in a command being sent to the uCode even if the client was not asleep. The following simple patch has fixed the issue for me without any degradation that I can find. Signed-off-by: Daniel Halperin <dhalperi@cs.washington.edu> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 4a268927377b..380d2087bf3a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3007,6 +3007,8 @@ static void iwl_mac_sta_notify(struct ieee80211_hw *hw,
break;
case STA_NOTIFY_AWAKE:
WARN_ON(!sta_priv->client);
+ if (!sta_priv->asleep)
+ break;
sta_priv->asleep = false;
sta_id = iwl_find_station(priv, sta->addr);
if (sta_id != IWL_INVALID_STATION)