iwlwifi: Generic approach to measure temperature
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 18 Mar 2010 17:56:32 +0000 (10:56 -0700)
committerReinette Chatre <reinette.chatre@intel.com>
Thu, 25 Mar 2010 18:20:58 +0000 (11:20 -0700)
In stead of checking for 4965 and do KELVIN_TO_CELSIUS conversation, add
.cfg parameter for more generic approach.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-power.c

index af48d07bb29d70de44750570f78f5bf1ffb9ed20..1b5ced5159b8b149ffe7376f0e2ee7c8338ae48d 100644 (file)
@@ -2258,6 +2258,7 @@ struct iwl_cfg iwl4965_agn_cfg = {
        .chain_noise_num_beacons = IWL4965_CAL_NUM_BEACONS,
        .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF,
        .monitor_recover_period = IWL_MONITORING_PERIOD,
+       .temperature_kelvin = true,
 };
 
 /* Module firmware */
index 22f84f3c3c40438ba94a05cf5c65b27c3035f548..e9b0411de845ae14c9c5fc32313ef2497f826af4 100644 (file)
@@ -305,6 +305,7 @@ struct iwl_cfg {
        s32 chain_noise_scale;
        /* timer period for monitor the driver queues */
        u32 monitor_recover_period;
+       bool temperature_kelvin;
 };
 
 /***************************
index 1a1a9f081cc712288b552e49f667601bc7e5d5a9..e0581a771aab912d342146fa87584787ea80239f 100644 (file)
@@ -383,10 +383,10 @@ EXPORT_SYMBOL(iwl_ht_enabled);
 
 bool iwl_within_ct_kill_margin(struct iwl_priv *priv)
 {
-       s32 temp = priv->temperature; /* degrees CELSIUS except 4965 */
+       s32 temp = priv->temperature; /* degrees CELSIUS except specified */
        bool within_margin = false;
 
-       if ((priv->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_4965)
+       if (priv->cfg->temperature_kelvin)
                temp = KELVIN_TO_CELSIUS(priv->temperature);
 
        if (!priv->thermal_throttle.advanced_tt)
@@ -839,12 +839,12 @@ EXPORT_SYMBOL(iwl_tt_exit_ct_kill);
 static void iwl_bg_tt_work(struct work_struct *work)
 {
        struct iwl_priv *priv = container_of(work, struct iwl_priv, tt_work);
-       s32 temp = priv->temperature; /* degrees CELSIUS except 4965 */
+       s32 temp = priv->temperature; /* degrees CELSIUS except specified */
 
        if (test_bit(STATUS_EXIT_PENDING, &priv->status))
                return;
 
-       if ((priv->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_4965)
+       if (priv->cfg->temperature_kelvin)
                temp = KELVIN_TO_CELSIUS(priv->temperature);
 
        if (!priv->thermal_throttle.advanced_tt)