iwlwifi: mvm: revert to our old skip over dtim policy
authorAvri Altman <avri.altman@intel.com>
Thu, 18 Jun 2015 03:39:41 +0000 (06:39 +0300)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 4 Aug 2015 18:29:39 +0000 (21:29 +0300)
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: Avri Altman <avri.altman@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/power.c

index 506294fc2f878c037464112c307be2bb202deda6..c4e08903366c04090d18df64a29df89447951f63 100644 (file)
@@ -288,27 +288,6 @@ static bool iwl_mvm_power_allow_uapsd(struct iwl_mvm *mvm,
        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)
 {
        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) &&
            (iwlmvm_mod_params.power_scheme == IWL_POWER_SCHEME_LP ||
             mvm->cur_ucode == IWL_UCODE_WOWLAN)) {
-               cmd->skip_dtim_periods =
-                       iwl_mvm_power_get_skip_over_dtim(dtimper, bi);
-               if (cmd->skip_dtim_periods)
-                       cmd->flags |=
-                               cpu_to_le16(POWER_FLAGS_SKIP_OVER_DTIM_MSK);
+               cmd->flags |= cpu_to_le16(POWER_FLAGS_SKIP_OVER_DTIM_MSK);
+               cmd->skip_dtim_periods = 3;
        }
 
        if (mvm->cur_ucode != IWL_UCODE_WOWLAN) {