diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-6000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 106 |
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 | */ | ||
286 | struct 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 | |||
316 | struct 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 | |||
345 | struct 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 | */ |