aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-6000.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-6000.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c106
1 files changed, 5 insertions, 101 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index 70e117f8d0c4..f732f6d194a0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -90,11 +90,7 @@ static void iwl6000_nic_config(struct iwl_priv *priv)
90 CSR_HW_IF_CONFIG_REG_BIT_MAC_SI); 90 CSR_HW_IF_CONFIG_REG_BIT_MAC_SI);
91 91
92 /* no locking required for register write */ 92 /* no locking required for register write */
93 if (priv->cfg->pa_type == IWL_PA_HYBRID) { 93 if (priv->cfg->pa_type == IWL_PA_INTERNAL) {
94 /* 2x2 hybrid phy type */
95 iwl_write32(priv, CSR_GP_DRIVER_REG,
96 CSR_GP_DRIVER_REG_BIT_RADIO_SKU_2x2_HYB);
97 } else if (priv->cfg->pa_type == IWL_PA_INTERNAL) {
98 /* 2x2 IPA phy type */ 94 /* 2x2 IPA phy type */
99 iwl_write32(priv, CSR_GP_DRIVER_REG, 95 iwl_write32(priv, CSR_GP_DRIVER_REG,
100 CSR_GP_DRIVER_REG_BIT_RADIO_SKU_2x2_IPA); 96 CSR_GP_DRIVER_REG_BIT_RADIO_SKU_2x2_IPA);
@@ -166,9 +162,7 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv)
166 BIT(IWL_CALIB_XTAL) | 162 BIT(IWL_CALIB_XTAL) |
167 BIT(IWL_CALIB_LO) | 163 BIT(IWL_CALIB_LO) |
168 BIT(IWL_CALIB_TX_IQ) | 164 BIT(IWL_CALIB_TX_IQ) |
169 BIT(IWL_CALIB_TX_IQ_PERD) |
170 BIT(IWL_CALIB_BASE_BAND); 165 BIT(IWL_CALIB_BASE_BAND);
171
172 return 0; 166 return 0;
173} 167}
174 168
@@ -188,8 +182,8 @@ static int iwl6000_hw_channel_switch(struct iwl_priv *priv, u16 channel)
188 182
189 cmd.band = priv->band == IEEE80211_BAND_2GHZ; 183 cmd.band = priv->band == IEEE80211_BAND_2GHZ;
190 cmd.channel = cpu_to_le16(channel); 184 cmd.channel = cpu_to_le16(channel);
191 cmd.rxon_flags = priv->active_rxon.flags; 185 cmd.rxon_flags = priv->staging_rxon.flags;
192 cmd.rxon_filter_flags = priv->active_rxon.filter_flags; 186 cmd.rxon_filter_flags = priv->staging_rxon.filter_flags;
193 cmd.switch_time = cpu_to_le32(priv->ucode_beacon_time); 187 cmd.switch_time = cpu_to_le32(priv->ucode_beacon_time);
194 ch_info = iwl_get_channel_info(priv, priv->band, channel); 188 ch_info = iwl_get_channel_info(priv, priv->band, channel);
195 if (ch_info) 189 if (ch_info)
@@ -199,6 +193,8 @@ static int iwl6000_hw_channel_switch(struct iwl_priv *priv, u16 channel)
199 priv->active_rxon.channel, channel); 193 priv->active_rxon.channel, channel);
200 return -EFAULT; 194 return -EFAULT;
201 } 195 }
196 priv->switch_rxon.channel = cpu_to_le16(channel);
197 priv->switch_rxon.switch_in_progress = true;
202 198
203 return iwl_send_cmd_sync(priv, &hcmd); 199 return iwl_send_cmd_sync(priv, &hcmd);
204} 200}
@@ -279,98 +275,6 @@ static struct iwl_ops iwl6050_ops = {
279 .led = &iwlagn_led_ops, 275 .led = &iwlagn_led_ops,
280}; 276};
281 277
282
283/*
284 * "h": Hybrid configuration, use both internal and external Power Amplifier
285 */
286struct iwl_cfg iwl6000h_2agn_cfg = {
287 .name = "6000 Series 2x2 AGN",
288 .fw_name_pre = IWL6000_FW_PRE,
289 .ucode_api_max = IWL6000_UCODE_API_MAX,
290 .ucode_api_min = IWL6000_UCODE_API_MIN,
291 .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
292 .ops = &iwl6000_ops,
293 .eeprom_size = OTP_LOW_IMAGE_SIZE,
294 .eeprom_ver = EEPROM_6000_EEPROM_VERSION,
295 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
296 .num_of_queues = IWL50_NUM_QUEUES,
297 .num_of_ampdu_queues = IWL50_NUM_AMPDU_QUEUES,
298 .mod_params = &iwl50_mod_params,
299 .valid_tx_ant = ANT_AB,
300 .valid_rx_ant = ANT_AB,
301 .pll_cfg_val = 0,
302 .set_l0s = true,
303 .use_bsm = false,
304 .pa_type = IWL_PA_HYBRID,
305 .max_ll_items = OTP_MAX_LL_ITEMS_6x00,
306 .shadow_ram_support = true,
307 .ht_greenfield_support = true,
308 .led_compensation = 51,
309 .use_rts_for_ht = true, /* use rts/cts protection */
310 .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
311 .supports_idle = true,
312 .adv_thermal_throttle = true,
313 .support_ct_kill_exit = true,
314};
315
316struct iwl_cfg iwl6000h_2abg_cfg = {
317 .name = "6000 Series 2x2 ABG",
318 .fw_name_pre = IWL6000_FW_PRE,
319 .ucode_api_max = IWL6000_UCODE_API_MAX,
320 .ucode_api_min = IWL6000_UCODE_API_MIN,
321 .sku = IWL_SKU_A|IWL_SKU_G,
322 .ops = &iwl6000_ops,
323 .eeprom_size = OTP_LOW_IMAGE_SIZE,
324 .eeprom_ver = EEPROM_6000_EEPROM_VERSION,
325 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
326 .num_of_queues = IWL50_NUM_QUEUES,
327 .num_of_ampdu_queues = IWL50_NUM_AMPDU_QUEUES,
328 .mod_params = &iwl50_mod_params,
329 .valid_tx_ant = ANT_AB,
330 .valid_rx_ant = ANT_AB,
331 .pll_cfg_val = 0,
332 .set_l0s = true,
333 .use_bsm = false,
334 .pa_type = IWL_PA_HYBRID,
335 .max_ll_items = OTP_MAX_LL_ITEMS_6x00,
336 .shadow_ram_support = true,
337 .ht_greenfield_support = true,
338 .led_compensation = 51,
339 .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
340 .supports_idle = true,
341 .adv_thermal_throttle = true,
342 .support_ct_kill_exit = true,
343};
344
345struct iwl_cfg iwl6000h_2bg_cfg = {
346 .name = "6000 Series 2x2 BG",
347 .fw_name_pre = IWL6000_FW_PRE,
348 .ucode_api_max = IWL6000_UCODE_API_MAX,
349 .ucode_api_min = IWL6000_UCODE_API_MIN,
350 .sku = IWL_SKU_G,
351 .ops = &iwl6000_ops,
352 .eeprom_size = OTP_LOW_IMAGE_SIZE,
353 .eeprom_ver = EEPROM_6000_EEPROM_VERSION,
354 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
355 .num_of_queues = IWL50_NUM_QUEUES,
356 .num_of_ampdu_queues = IWL50_NUM_AMPDU_QUEUES,
357 .mod_params = &iwl50_mod_params,
358 .valid_tx_ant = ANT_AB,
359 .valid_rx_ant = ANT_AB,
360 .pll_cfg_val = 0,
361 .set_l0s = true,
362 .use_bsm = false,
363 .pa_type = IWL_PA_HYBRID,
364 .max_ll_items = OTP_MAX_LL_ITEMS_6x00,
365 .shadow_ram_support = true,
366 .ht_greenfield_support = true,
367 .led_compensation = 51,
368 .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS,
369 .supports_idle = true,
370 .adv_thermal_throttle = true,
371 .support_ct_kill_exit = true,
372};
373
374/* 278/*
375 * "i": Internal configuration, use internal Power Amplifier 279 * "i": Internal configuration, use internal Power Amplifier
376 */ 280 */