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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -624,6 +624,7 @@ struct iwl_mod_params iwlagn_mod_params = {
	.plcp_check = true,
	.bt_coex_active = true,
	.no_sleep_autoadjust = true,
	.power_level = IWL_POWER_INDEX_1,
	/* the rest are 0 by default */
};

+5 −0
Original line number Diff line number Diff line
@@ -3831,6 +3831,11 @@ module_param_named(power_save, iwlagn_mod_params.power_save,
MODULE_PARM_DESC(power_save,
		 "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
 * adjusting ...
+1 −0
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@ struct iwl_mod_params {
	int led_mode;		/* def: 0 = system default */
	bool no_sleep_autoadjust; /* def: true = disable autoadjust */
	bool power_save;	/* def: false = disable power save */
	int power_level;	/* def: 1 = power level */
};

/*
+9 −3
Original line number Diff line number Diff line
@@ -358,9 +358,15 @@ static void iwl_power_build_cmd(struct iwl_priv *priv,
		iwl_static_sleep_cmd(priv, cmd,
				     priv->power_data.debug_sleep_level_override,
				     dtimper);
	else if (iwlagn_mod_params.no_sleep_autoadjust)
		iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_1, dtimper);
	else if (iwlagn_mod_params.no_sleep_autoadjust) {
		if (iwlagn_mod_params.power_level > IWL_POWER_INDEX_1 &&
		    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,
					 priv->hw->conf.dynamic_ps_timeout,
					 priv->hw->conf.max_sleep_period);