diff options
author | John W. Linville <linville@tuxdriver.com> | 2011-04-25 14:34:25 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-04-25 14:34:25 -0400 |
commit | cfef6047c4027a8448ec8dafeaf2bb362cc882e4 (patch) | |
tree | c254bd25aa8b4b0696b5b5cc45d8e30c7c1bb9dd /drivers/net/wireless/iwlwifi/iwl-power.c | |
parent | b71d1d426d263b0b6cb5760322efebbfc89d4463 (diff) | |
parent | 73b48099cc265f88fa1255f3f43e52fe6a94fd5c (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/rt2x00/rt2x00queue.c
drivers/net/wireless/rt2x00/rt2x00queue.h
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-power.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-power.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-power.c b/drivers/net/wireless/iwlwifi/iwl-power.c index c43c8e66de73..595c930b28ae 100644 --- a/drivers/net/wireless/iwlwifi/iwl-power.c +++ b/drivers/net/wireless/iwlwifi/iwl-power.c | |||
@@ -188,9 +188,10 @@ static void iwl_static_sleep_cmd(struct iwl_priv *priv, | |||
188 | table = range_0; | 188 | table = range_0; |
189 | } | 189 | } |
190 | 190 | ||
191 | BUG_ON(lvl < 0 || lvl >= IWL_POWER_NUM); | 191 | if (WARN_ON(lvl < 0 || lvl >= IWL_POWER_NUM)) |
192 | 192 | memset(cmd, 0, sizeof(*cmd)); | |
193 | *cmd = table[lvl].cmd; | 193 | else |
194 | *cmd = table[lvl].cmd; | ||
194 | 195 | ||
195 | if (period == 0) { | 196 | if (period == 0) { |
196 | skip = 0; | 197 | skip = 0; |
@@ -354,16 +355,12 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, | |||
354 | 355 | ||
355 | dtimper = priv->hw->conf.ps_dtim_period ?: 1; | 356 | dtimper = priv->hw->conf.ps_dtim_period ?: 1; |
356 | 357 | ||
357 | if (priv->cfg->base_params->broken_powersave) | 358 | if (priv->hw->conf.flags & IEEE80211_CONF_IDLE) |
358 | iwl_power_sleep_cam_cmd(priv, cmd); | ||
359 | else if (priv->hw->conf.flags & IEEE80211_CONF_IDLE) | ||
360 | iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20); | 359 | iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20); |
361 | else if (priv->cfg->ops->lib->tt_ops.lower_power_detection && | 360 | else if (iwl_tt_is_low_power_state(priv)) { |
362 | priv->cfg->ops->lib->tt_ops.tt_power_mode && | ||
363 | priv->cfg->ops->lib->tt_ops.lower_power_detection(priv)) { | ||
364 | /* in thermal throttling low power state */ | 361 | /* in thermal throttling low power state */ |
365 | iwl_static_sleep_cmd(priv, cmd, | 362 | iwl_static_sleep_cmd(priv, cmd, |
366 | priv->cfg->ops->lib->tt_ops.tt_power_mode(priv), dtimper); | 363 | iwl_tt_current_power_mode(priv), dtimper); |
367 | } else if (!enabled) | 364 | } else if (!enabled) |
368 | iwl_power_sleep_cam_cmd(priv, cmd); | 365 | iwl_power_sleep_cam_cmd(priv, cmd); |
369 | else if (priv->power_data.debug_sleep_level_override >= 0) | 366 | else if (priv->power_data.debug_sleep_level_override >= 0) |