Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be681c7d authored by Avri Altman's avatar Avri Altman Committed by Emmanuel Grumbach
Browse files

iwlwifi: mvm: revert to our old skip over dtim policy



Our firmware scheduler used to suffer from false wake-up on 500 time units.
We had to came up with a formula to address this buggy behavior.
Now that our firmware is fixed, we can go back to our old policy.

Signed-off-by: default avatarAvri Altman <avri.altman@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent bd7fc617
Loading
Loading
Loading
Loading
+2 −26
Original line number Original line Diff line number Diff line
@@ -288,27 +288,6 @@ static bool iwl_mvm_power_allow_uapsd(struct iwl_mvm *mvm,
	return true;
	return true;
}
}


static int iwl_mvm_power_get_skip_over_dtim(int dtimper, int bi)
{
	int numerator;
	int dtim_interval = dtimper * bi;

	if (WARN_ON(!dtim_interval))
		return 0;

	if (dtimper == 1) {
		if (bi > 100)
			numerator = 408;
		else
			numerator = 510;
	} else if (dtimper < 10) {
		numerator = 612;
	} else {
		return 0;
	}
	return max(1, (numerator / dtim_interval));
}

static bool iwl_mvm_power_is_radar(struct ieee80211_vif *vif)
static bool iwl_mvm_power_is_radar(struct ieee80211_vif *vif)
{
{
	struct ieee80211_chanctx_conf *chanctx_conf;
	struct ieee80211_chanctx_conf *chanctx_conf;
@@ -378,11 +357,8 @@ static void iwl_mvm_power_build_cmd(struct iwl_mvm *mvm,
	if (!radar_detect && (dtimper < 10) &&
	if (!radar_detect && (dtimper < 10) &&
	    (iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_LP ||
	    (iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_LP ||
	     mvm->cur_ucode == IWL_UCODE_WOWLAN)) {
	     mvm->cur_ucode == IWL_UCODE_WOWLAN)) {
		cmd->skip_dtim_periods =
		cmd->flags |= cpu_to_le16(POWER_FLAGS_SKIP_OVER_DTIM_MSK);
			iwl_mvm_power_get_skip_over_dtim(dtimper, bi);
		cmd->skip_dtim_periods = 3;
		if (cmd->skip_dtim_periods)
			cmd->flags |=
				cpu_to_le16(POWER_FLAGS_SKIP_OVER_DTIM_MSK);
	}
	}


	if (mvm->cur_ucode != IWL_UCODE_WOWLAN) {
	if (mvm->cur_ucode != IWL_UCODE_WOWLAN) {