aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-6000.c
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2009-07-24 14:13:01 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-07-27 15:24:20 -0400
commit672639de13c4db92ed6a47e68043a4317e219902 (patch)
tree68159ff1d3e182780cb62aa4f69725287e417474 /drivers/net/wireless/iwlwifi/iwl-6000.c
parente3139fe741b25a0f8a27fd2cdf2ad11734c3d4d3 (diff)
iwlwifi: critical temperature enter/exit condition
If advance thermal throttling is used the driver need to pass both "enter" and "exit" temperature to uCode. Using different critical temperature threshold for legacy and advance thermal throttling management based on the type of thermal throttling method is used except 1000. For 1000, it use advance thermal throttling critical temperature threshold, but with legacy thermal management implementation until ucode has the necessary implementations in place. 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>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-6000.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c59
1 files changed, 58 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index 26c5d4a60d17..59ff73536f3a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -61,6 +61,63 @@
61#define _IWL6050_MODULE_FIRMWARE(api) IWL6050_FW_PRE #api ".ucode" 61#define _IWL6050_MODULE_FIRMWARE(api) IWL6050_FW_PRE #api ".ucode"
62#define IWL6050_MODULE_FIRMWARE(api) _IWL6050_MODULE_FIRMWARE(api) 62#define IWL6050_MODULE_FIRMWARE(api) _IWL6050_MODULE_FIRMWARE(api)
63 63
64static void iwl6000_set_ct_threshold(struct iwl_priv *priv)
65{
66 /* want Celsius */
67 priv->hw_params.ct_kill_threshold = CT_KILL_THRESHOLD;
68 priv->hw_params.ct_kill_exit_threshold = CT_KILL_EXIT_THRESHOLD;
69}
70
71static struct iwl_lib_ops iwl6000_lib = {
72 .set_hw_params = iwl5000_hw_set_hw_params,
73 .txq_update_byte_cnt_tbl = iwl5000_txq_update_byte_cnt_tbl,
74 .txq_inval_byte_cnt_tbl = iwl5000_txq_inval_byte_cnt_tbl,
75 .txq_set_sched = iwl5000_txq_set_sched,
76 .txq_agg_enable = iwl5000_txq_agg_enable,
77 .txq_agg_disable = iwl5000_txq_agg_disable,
78 .txq_attach_buf_to_tfd = iwl_hw_txq_attach_buf_to_tfd,
79 .txq_free_tfd = iwl_hw_txq_free_tfd,
80 .txq_init = iwl_hw_tx_queue_init,
81 .rx_handler_setup = iwl5000_rx_handler_setup,
82 .setup_deferred_work = iwl5000_setup_deferred_work,
83 .is_valid_rtc_data_addr = iwl5000_hw_valid_rtc_data_addr,
84 .load_ucode = iwl5000_load_ucode,
85 .init_alive_start = iwl5000_init_alive_start,
86 .alive_notify = iwl5000_alive_notify,
87 .send_tx_power = iwl5000_send_tx_power,
88 .update_chain_flags = iwl_update_chain_flags,
89 .apm_ops = {
90 .init = iwl5000_apm_init,
91 .reset = iwl5000_apm_reset,
92 .stop = iwl5000_apm_stop,
93 .config = iwl5000_nic_config,
94 .set_pwr_src = iwl_set_pwr_src,
95 },
96 .eeprom_ops = {
97 .regulatory_bands = {
98 EEPROM_5000_REG_BAND_1_CHANNELS,
99 EEPROM_5000_REG_BAND_2_CHANNELS,
100 EEPROM_5000_REG_BAND_3_CHANNELS,
101 EEPROM_5000_REG_BAND_4_CHANNELS,
102 EEPROM_5000_REG_BAND_5_CHANNELS,
103 EEPROM_5000_REG_BAND_24_FAT_CHANNELS,
104 EEPROM_5000_REG_BAND_52_FAT_CHANNELS
105 },
106 .verify_signature = iwlcore_eeprom_verify_signature,
107 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
108 .release_semaphore = iwlcore_eeprom_release_semaphore,
109 .calib_version = iwl5000_eeprom_calib_version,
110 .query_addr = iwl5000_eeprom_query_addr,
111 },
112 .post_associate = iwl_post_associate,
113 .isr = iwl_isr_ict,
114 .config_ap = iwl_config_ap,
115 .temp_ops = {
116 .temperature = iwl5000_temperature,
117 .set_ct_kill = iwl6000_set_ct_threshold,
118 },
119};
120
64static struct iwl_hcmd_utils_ops iwl6000_hcmd_utils = { 121static struct iwl_hcmd_utils_ops iwl6000_hcmd_utils = {
65 .get_hcmd_size = iwl5000_get_hcmd_size, 122 .get_hcmd_size = iwl5000_get_hcmd_size,
66 .build_addsta_hcmd = iwl5000_build_addsta_hcmd, 123 .build_addsta_hcmd = iwl5000_build_addsta_hcmd,
@@ -70,7 +127,7 @@ static struct iwl_hcmd_utils_ops iwl6000_hcmd_utils = {
70 127
71static struct iwl_ops iwl6000_ops = { 128static struct iwl_ops iwl6000_ops = {
72 .ucode = &iwl5000_ucode, 129 .ucode = &iwl5000_ucode,
73 .lib = &iwl5000_lib, 130 .lib = &iwl6000_lib,
74 .hcmd = &iwl5000_hcmd, 131 .hcmd = &iwl5000_hcmd,
75 .utils = &iwl6000_hcmd_utils, 132 .utils = &iwl6000_hcmd_utils,
76}; 133};