iwlwifi: mvm: clear tt values when entering CT-kill
authorLuciano Coelho <luciano.coelho@intel.com>
Mon, 15 Dec 2014 12:15:15 +0000 (14:15 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 28 Dec 2014 18:00:15 +0000 (20:00 +0200)
Clear the thermal throttling values when entering CT-kill, since
everything will be reinitialized anyway when we exit CT-kill.

Additionally, clear the dynamic_smps value in the initialization
funciton, for consistency.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/tt.c

index 2b1e61f..ba615ad 100644 (file)
@@ -69,6 +69,7 @@
 
 static void iwl_mvm_enter_ctkill(struct iwl_mvm *mvm)
 {
+       struct iwl_mvm_tt_mgmt *tt = &mvm->thermal_throttle;
        u32 duration = mvm->thermal_throttle.params->ct_kill_duration;
 
        if (test_bit(IWL_MVM_STATUS_HW_CTKILL, &mvm->status))
@@ -77,12 +78,15 @@ static void iwl_mvm_enter_ctkill(struct iwl_mvm *mvm)
        IWL_ERR(mvm, "Enter CT Kill\n");
        iwl_mvm_set_hw_ctkill_state(mvm, true);
 
+       tt->throttle = false;
+       tt->dynamic_smps = false;
+
        /* Don't schedule an exit work if we're in test mode, since
         * the temperature will not change unless we manually set it
         * again (or disable testing).
         */
        if (!mvm->temperature_test)
-               schedule_delayed_work(&mvm->thermal_throttle.ct_kill_exit,
+               schedule_delayed_work(&tt->ct_kill_exit,
                                      round_jiffies_relative(duration * HZ));
 }
 
@@ -452,6 +456,7 @@ void iwl_mvm_tt_initialize(struct iwl_mvm *mvm, u32 min_backoff)
                tt->params = &iwl7000_tt_params;
 
        tt->throttle = false;
+       tt->dynamic_smps = false;
        tt->min_backoff = min_backoff;
        INIT_DELAYED_WORK(&tt->ct_kill_exit, check_exit_ctkill);
 }