Commit f7538168 authored by Wey-Yi Guy's avatar Wey-Yi Guy

iwlagn: Add power_level module parameter

Add power_level module parameter to set the default power save level.
Power save level has range from 1 - 5, default power save level is 1.
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent 0172b029
...@@ -624,6 +624,7 @@ struct iwl_mod_params iwlagn_mod_params = { ...@@ -624,6 +624,7 @@ struct iwl_mod_params iwlagn_mod_params = {
.plcp_check = true, .plcp_check = true,
.bt_coex_active = true, .bt_coex_active = true,
.no_sleep_autoadjust = true, .no_sleep_autoadjust = true,
.power_level = IWL_POWER_INDEX_1,
/* the rest are 0 by default */ /* the rest are 0 by default */
}; };
......
...@@ -3831,6 +3831,11 @@ module_param_named(power_save, iwlagn_mod_params.power_save, ...@@ -3831,6 +3831,11 @@ module_param_named(power_save, iwlagn_mod_params.power_save,
MODULE_PARM_DESC(power_save, MODULE_PARM_DESC(power_save,
"enable WiFi power management (default: disable)"); "enable WiFi power management (default: disable)");
module_param_named(power_level, iwlagn_mod_params.power_level,
int, S_IRUGO);
MODULE_PARM_DESC(power_level,
"default power save level (range from 1 - 5, default: 1)");
/* /*
* For now, keep using power level 1 instead of automatically * For now, keep using power level 1 instead of automatically
* adjusting ... * adjusting ...
......
...@@ -164,6 +164,7 @@ struct iwl_mod_params { ...@@ -164,6 +164,7 @@ struct iwl_mod_params {
int led_mode; /* def: 0 = system default */ int led_mode; /* def: 0 = system default */
bool no_sleep_autoadjust; /* def: true = disable autoadjust */ bool no_sleep_autoadjust; /* def: true = disable autoadjust */
bool power_save; /* def: false = disable power save */ bool power_save; /* def: false = disable power save */
int power_level; /* def: 1 = power level */
}; };
/* /*
......
...@@ -358,9 +358,15 @@ static void iwl_power_build_cmd(struct iwl_priv *priv, ...@@ -358,9 +358,15 @@ static void iwl_power_build_cmd(struct iwl_priv *priv,
iwl_static_sleep_cmd(priv, cmd, iwl_static_sleep_cmd(priv, cmd,
priv->power_data.debug_sleep_level_override, priv->power_data.debug_sleep_level_override,
dtimper); dtimper);
else if (iwlagn_mod_params.no_sleep_autoadjust) else if (iwlagn_mod_params.no_sleep_autoadjust) {
iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_1, dtimper); if (iwlagn_mod_params.power_level > IWL_POWER_INDEX_1 &&
else iwlagn_mod_params.power_level <= IWL_POWER_INDEX_5)
iwl_static_sleep_cmd(priv, cmd,
iwlagn_mod_params.power_level, dtimper);
else
iwl_static_sleep_cmd(priv, cmd,
IWL_POWER_INDEX_1, dtimper);
} else
iwl_power_fill_sleep_cmd(priv, cmd, iwl_power_fill_sleep_cmd(priv, cmd,
priv->hw->conf.dynamic_ps_timeout, priv->hw->conf.dynamic_ps_timeout,
priv->hw->conf.max_sleep_period); priv->hw->conf.max_sleep_period);
......
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