iwlwifi: choose thermal throttle method based on device config
Using device configuration structure to decide the type of thermal throttle method for the device. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c8c24872c6
commit
6047b4f939
|
@ -277,6 +277,7 @@ struct iwl_cfg iwl6000h_2agn_cfg = {
|
|||
.use_rts_for_ht = true, /* use rts/cts protection */
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6000h_2abg_cfg = {
|
||||
|
@ -304,6 +305,7 @@ struct iwl_cfg iwl6000h_2abg_cfg = {
|
|||
.led_compensation = 51,
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6000h_2bg_cfg = {
|
||||
|
@ -331,6 +333,7 @@ struct iwl_cfg iwl6000h_2bg_cfg = {
|
|||
.led_compensation = 51,
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -362,6 +365,7 @@ struct iwl_cfg iwl6000i_2agn_cfg = {
|
|||
.use_rts_for_ht = true, /* use rts/cts protection */
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6000i_2abg_cfg = {
|
||||
|
@ -389,6 +393,7 @@ struct iwl_cfg iwl6000i_2abg_cfg = {
|
|||
.led_compensation = 51,
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6000i_2bg_cfg = {
|
||||
|
@ -416,6 +421,7 @@ struct iwl_cfg iwl6000i_2bg_cfg = {
|
|||
.led_compensation = 51,
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6050_2agn_cfg = {
|
||||
|
@ -444,6 +450,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
|
|||
.use_rts_for_ht = true, /* use rts/cts protection */
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6050_2abg_cfg = {
|
||||
|
@ -471,6 +478,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
|
|||
.led_compensation = 51,
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6000_3agn_cfg = {
|
||||
|
@ -499,6 +507,7 @@ struct iwl_cfg iwl6000_3agn_cfg = {
|
|||
.use_rts_for_ht = true, /* use rts/cts protection */
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
struct iwl_cfg iwl6050_3agn_cfg = {
|
||||
|
@ -527,6 +536,7 @@ struct iwl_cfg iwl6050_3agn_cfg = {
|
|||
.use_rts_for_ht = true, /* use rts/cts protection */
|
||||
.chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
|
||||
.supports_idle = true,
|
||||
.adv_thermal_throttle = true,
|
||||
};
|
||||
|
||||
MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));
|
||||
|
|
|
@ -225,6 +225,7 @@ struct iwl_mod_params {
|
|||
* The detail algorithm is described in iwl-led.c
|
||||
* @use_rts_for_ht: use rts/cts protection for HT traffic
|
||||
* @chain_noise_num_beacons: number of beacons used to compute chain noise
|
||||
* @adv_thermal_throttle: support advance thermal throttle
|
||||
*
|
||||
* We enable the driver to be backward compatible wrt API version. The
|
||||
* driver specifies which APIs it supports (with @ucode_api_max being the
|
||||
|
@ -278,6 +279,7 @@ struct iwl_cfg {
|
|||
bool use_rts_for_ht;
|
||||
int chain_noise_num_beacons;
|
||||
const bool supports_idle;
|
||||
bool adv_thermal_throttle;
|
||||
};
|
||||
|
||||
/***************************
|
||||
|
|
|
@ -893,9 +893,7 @@ void iwl_tt_initialize(struct iwl_priv *priv)
|
|||
INIT_WORK(&priv->ct_enter, iwl_bg_ct_enter);
|
||||
INIT_WORK(&priv->ct_exit, iwl_bg_ct_exit);
|
||||
|
||||
switch (priv->hw_rev & CSR_HW_REV_TYPE_MSK) {
|
||||
case CSR_HW_REV_TYPE_6x00:
|
||||
case CSR_HW_REV_TYPE_6x50:
|
||||
if (priv->cfg->adv_thermal_throttle) {
|
||||
IWL_DEBUG_POWER(priv, "Advanced Thermal Throttling\n");
|
||||
tt->restriction = kzalloc(sizeof(struct iwl_tt_restriction) *
|
||||
IWL_TI_STATE_MAX, GFP_KERNEL);
|
||||
|
@ -928,11 +926,9 @@ void iwl_tt_initialize(struct iwl_priv *priv)
|
|||
&restriction_range[0], size);
|
||||
priv->thermal_throttle.advanced_tt = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
} else {
|
||||
IWL_DEBUG_POWER(priv, "Legacy Thermal Throttling\n");
|
||||
priv->thermal_throttle.advanced_tt = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(iwl_tt_initialize);
|
||||
|
|
Loading…
Reference in New Issue