mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 13:36:43 +07:00
iwlwifi: remove no_sleep_autoadjust
My original idea with this was to adjust the sleep pattern of the uCode based on the maximum network latency userspace asked for. Due to nobody wanting to test it, this logic was disabled by default. It seems the time has come to remove it, since it's not only always disabled but there also don't seem to be any applications that actually request a max network latency. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This commit is contained in:
parent
f57d7b6c9d
commit
84965795b2
@ -99,7 +99,6 @@ struct iwl_mod_params iwlagn_mod_params = {
|
||||
.restart_fw = 1,
|
||||
.plcp_check = true,
|
||||
.bt_coex_active = true,
|
||||
.no_sleep_autoadjust = true,
|
||||
.power_level = IWL_POWER_INDEX_1,
|
||||
.bt_ch_announce = true,
|
||||
.wanted_ucode_alternative = 1,
|
||||
|
@ -2471,13 +2471,3 @@ module_param_named(auto_agg, iwlagn_mod_params.auto_agg,
|
||||
bool, S_IRUGO);
|
||||
MODULE_PARM_DESC(auto_agg,
|
||||
"enable agg w/o check traffic load (default: enable)");
|
||||
|
||||
/*
|
||||
* For now, keep using power level 1 instead of automatically
|
||||
* adjusting ...
|
||||
*/
|
||||
module_param_named(no_sleep_autoadjust, iwlagn_mod_params.no_sleep_autoadjust,
|
||||
bool, S_IRUGO);
|
||||
MODULE_PARM_DESC(no_sleep_autoadjust,
|
||||
"don't automatically adjust sleep level "
|
||||
"according to maximum network latency (default: true)");
|
||||
|
@ -268,61 +268,6 @@ static void iwl_power_sleep_cam_cmd(struct iwl_priv *priv,
|
||||
IWL_DEBUG_POWER(priv, "Sleep command for CAM\n");
|
||||
}
|
||||
|
||||
static void iwl_power_fill_sleep_cmd(struct iwl_priv *priv,
|
||||
struct iwl_powertable_cmd *cmd,
|
||||
int dynps_ms, int wakeup_period)
|
||||
{
|
||||
/*
|
||||
* These are the original power level 3 sleep successions. The
|
||||
* device may behave better with such succession and was also
|
||||
* only tested with that. Just like the original sleep commands,
|
||||
* also adjust the succession here to the wakeup_period below.
|
||||
* The ranges are the same as for the sleep commands, 0-2, 3-9
|
||||
* and >10, which is selected based on the DTIM interval for
|
||||
* the sleep index but here we use the wakeup period since that
|
||||
* is what we need to do for the latency requirements.
|
||||
*/
|
||||
static const u8 slp_succ_r0[IWL_POWER_VEC_SIZE] = { 2, 2, 2, 2, 2 };
|
||||
static const u8 slp_succ_r1[IWL_POWER_VEC_SIZE] = { 2, 4, 6, 7, 9 };
|
||||
static const u8 slp_succ_r2[IWL_POWER_VEC_SIZE] = { 2, 7, 9, 9, 0xFF };
|
||||
const u8 *slp_succ = slp_succ_r0;
|
||||
int i;
|
||||
|
||||
if (wakeup_period > IWL_DTIM_RANGE_0_MAX)
|
||||
slp_succ = slp_succ_r1;
|
||||
if (wakeup_period > IWL_DTIM_RANGE_1_MAX)
|
||||
slp_succ = slp_succ_r2;
|
||||
|
||||
memset(cmd, 0, sizeof(*cmd));
|
||||
|
||||
cmd->flags = IWL_POWER_DRIVER_ALLOW_SLEEP_MSK |
|
||||
IWL_POWER_FAST_PD; /* no use seeing frames for others */
|
||||
|
||||
if (priv->power_data.bus_pm)
|
||||
cmd->flags |= IWL_POWER_PCI_PM_MSK;
|
||||
|
||||
if (cfg(priv)->base_params->shadow_reg_enable)
|
||||
cmd->flags |= IWL_POWER_SHADOW_REG_ENA;
|
||||
else
|
||||
cmd->flags &= ~IWL_POWER_SHADOW_REG_ENA;
|
||||
|
||||
if (iwl_advanced_bt_coexist(priv)) {
|
||||
if (!cfg(priv)->bt_params->bt_sco_disable)
|
||||
cmd->flags |= IWL_POWER_BT_SCO_ENA;
|
||||
else
|
||||
cmd->flags &= ~IWL_POWER_BT_SCO_ENA;
|
||||
}
|
||||
|
||||
cmd->rx_data_timeout = cpu_to_le32(1000 * dynps_ms);
|
||||
cmd->tx_data_timeout = cpu_to_le32(1000 * dynps_ms);
|
||||
|
||||
for (i = 0; i < IWL_POWER_VEC_SIZE; i++)
|
||||
cmd->sleep_interval[i] =
|
||||
cpu_to_le32(min_t(int, slp_succ[i], wakeup_period));
|
||||
|
||||
IWL_DEBUG_POWER(priv, "Automatic sleep command\n");
|
||||
}
|
||||
|
||||
static int iwl_set_power(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd)
|
||||
{
|
||||
IWL_DEBUG_POWER(priv, "Sending power/sleep command\n");
|
||||
@ -363,7 +308,7 @@ 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) {
|
||||
else {
|
||||
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,
|
||||
@ -371,10 +316,7 @@ static void iwl_power_build_cmd(struct iwl_priv *priv,
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
int iwl_power_set_mode(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd,
|
||||
|
@ -124,7 +124,6 @@ extern struct iwl_mod_params iwlagn_mod_params;
|
||||
* @wd_disable: enable stuck queue check, default = 0
|
||||
* @bt_coex_active: enable bt coex, default = true
|
||||
* @led_mode: system default, default = 0
|
||||
* @no_sleep_autoadjust: disable autoadjust, default = true
|
||||
* @power_save: disable power save, default = false
|
||||
* @power_level: power level, default = 1
|
||||
* @debug_level: levels are IWL_DL_*
|
||||
@ -143,7 +142,6 @@ struct iwl_mod_params {
|
||||
int wd_disable;
|
||||
bool bt_coex_active;
|
||||
int led_mode;
|
||||
bool no_sleep_autoadjust;
|
||||
bool power_save;
|
||||
int power_level;
|
||||
u32 debug_level;
|
||||
|
Loading…
Reference in New Issue
Block a user