aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-1000.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-1000.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-1000.c76
1 files changed, 75 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index a899be914ebf..80a28184a373 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -55,13 +55,87 @@
55#define _IWL1000_MODULE_FIRMWARE(api) IWL1000_FW_PRE #api ".ucode" 55#define _IWL1000_MODULE_FIRMWARE(api) IWL1000_FW_PRE #api ".ucode"
56#define IWL1000_MODULE_FIRMWARE(api) _IWL1000_MODULE_FIRMWARE(api) 56#define IWL1000_MODULE_FIRMWARE(api) _IWL1000_MODULE_FIRMWARE(api)
57 57
58
59/*
60 * For 1000, use advance thermal throttling critical temperature threshold,
61 * but legacy thermal management implementation for now.
62 * This is for the reason of 1000 uCode using advance thermal throttling API
63 * but not implement ct_kill_exit based on ct_kill exit temperature
64 * so the thermal throttling will still based on legacy thermal throttling
65 * management.
66 * The code here need to be modified once 1000 uCode has the advanced thermal
67 * throttling algorithm in place
68 */
69static void iwl1000_set_ct_threshold(struct iwl_priv *priv)
70{
71 /* want Celsius */
72 priv->hw_params.ct_kill_threshold = CT_KILL_THRESHOLD_LEGACY;
73 priv->hw_params.ct_kill_exit_threshold = CT_KILL_EXIT_THRESHOLD;
74}
75
76static struct iwl_lib_ops iwl1000_lib = {
77 .set_hw_params = iwl5000_hw_set_hw_params,
78 .txq_update_byte_cnt_tbl = iwl5000_txq_update_byte_cnt_tbl,
79 .txq_inval_byte_cnt_tbl = iwl5000_txq_inval_byte_cnt_tbl,
80 .txq_set_sched = iwl5000_txq_set_sched,
81 .txq_agg_enable = iwl5000_txq_agg_enable,
82 .txq_agg_disable = iwl5000_txq_agg_disable,
83 .txq_attach_buf_to_tfd = iwl_hw_txq_attach_buf_to_tfd,
84 .txq_free_tfd = iwl_hw_txq_free_tfd,
85 .txq_init = iwl_hw_tx_queue_init,
86 .rx_handler_setup = iwl5000_rx_handler_setup,
87 .setup_deferred_work = iwl5000_setup_deferred_work,
88 .is_valid_rtc_data_addr = iwl5000_hw_valid_rtc_data_addr,
89 .load_ucode = iwl5000_load_ucode,
90 .init_alive_start = iwl5000_init_alive_start,
91 .alive_notify = iwl5000_alive_notify,
92 .send_tx_power = iwl5000_send_tx_power,
93 .update_chain_flags = iwl_update_chain_flags,
94 .apm_ops = {
95 .init = iwl5000_apm_init,
96 .reset = iwl5000_apm_reset,
97 .stop = iwl5000_apm_stop,
98 .config = iwl5000_nic_config,
99 .set_pwr_src = iwl_set_pwr_src,
100 },
101 .eeprom_ops = {
102 .regulatory_bands = {
103 EEPROM_5000_REG_BAND_1_CHANNELS,
104 EEPROM_5000_REG_BAND_2_CHANNELS,
105 EEPROM_5000_REG_BAND_3_CHANNELS,
106 EEPROM_5000_REG_BAND_4_CHANNELS,
107 EEPROM_5000_REG_BAND_5_CHANNELS,
108 EEPROM_5000_REG_BAND_24_FAT_CHANNELS,
109 EEPROM_5000_REG_BAND_52_FAT_CHANNELS
110 },
111 .verify_signature = iwlcore_eeprom_verify_signature,
112 .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
113 .release_semaphore = iwlcore_eeprom_release_semaphore,
114 .calib_version = iwl5000_eeprom_calib_version,
115 .query_addr = iwl5000_eeprom_query_addr,
116 },
117 .post_associate = iwl_post_associate,
118 .isr = iwl_isr_ict,
119 .config_ap = iwl_config_ap,
120 .temp_ops = {
121 .temperature = iwl5000_temperature,
122 .set_ct_kill = iwl1000_set_ct_threshold,
123 },
124};
125
126static struct iwl_ops iwl1000_ops = {
127 .lib = &iwl1000_lib,
128 .hcmd = &iwl5000_hcmd,
129 .utils = &iwl5000_hcmd_utils,
130};
131
58struct iwl_cfg iwl1000_bgn_cfg = { 132struct iwl_cfg iwl1000_bgn_cfg = {
59 .name = "1000 Series BGN", 133 .name = "1000 Series BGN",
60 .fw_name_pre = IWL1000_FW_PRE, 134 .fw_name_pre = IWL1000_FW_PRE,
61 .ucode_api_max = IWL1000_UCODE_API_MAX, 135 .ucode_api_max = IWL1000_UCODE_API_MAX,
62 .ucode_api_min = IWL1000_UCODE_API_MIN, 136 .ucode_api_min = IWL1000_UCODE_API_MIN,
63 .sku = IWL_SKU_G|IWL_SKU_N, 137 .sku = IWL_SKU_G|IWL_SKU_N,
64 .ops = &iwl5000_ops, 138 .ops = &iwl1000_ops,
65 .eeprom_size = IWL_5000_EEPROM_IMG_SIZE, 139 .eeprom_size = IWL_5000_EEPROM_IMG_SIZE,
66 .eeprom_ver = EEPROM_5000_EEPROM_VERSION, 140 .eeprom_ver = EEPROM_5000_EEPROM_VERSION,
67 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION, 141 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,