diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-6000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 482 |
1 files changed, 164 insertions, 318 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index 0ceeaac85eda..f4bec3201ef9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -53,13 +53,11 @@ | |||
53 | #define IWL6000_UCODE_API_MAX 4 | 53 | #define IWL6000_UCODE_API_MAX 4 |
54 | #define IWL6050_UCODE_API_MAX 5 | 54 | #define IWL6050_UCODE_API_MAX 5 |
55 | #define IWL6000G2_UCODE_API_MAX 5 | 55 | #define IWL6000G2_UCODE_API_MAX 5 |
56 | #define IWL130_UCODE_API_MAX 5 | ||
57 | 56 | ||
58 | /* Lowest firmware API version supported */ | 57 | /* Lowest firmware API version supported */ |
59 | #define IWL6000_UCODE_API_MIN 4 | 58 | #define IWL6000_UCODE_API_MIN 4 |
60 | #define IWL6050_UCODE_API_MIN 4 | 59 | #define IWL6050_UCODE_API_MIN 4 |
61 | #define IWL6000G2_UCODE_API_MIN 4 | 60 | #define IWL6000G2_UCODE_API_MIN 4 |
62 | #define IWL130_UCODE_API_MIN 5 | ||
63 | 61 | ||
64 | #define IWL6000_FW_PRE "iwlwifi-6000-" | 62 | #define IWL6000_FW_PRE "iwlwifi-6000-" |
65 | #define _IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE #api ".ucode" | 63 | #define _IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE #api ".ucode" |
@@ -77,10 +75,6 @@ | |||
77 | #define _IWL6000G2B_MODULE_FIRMWARE(api) IWL6000G2B_FW_PRE #api ".ucode" | 75 | #define _IWL6000G2B_MODULE_FIRMWARE(api) IWL6000G2B_FW_PRE #api ".ucode" |
78 | #define IWL6000G2B_MODULE_FIRMWARE(api) _IWL6000G2B_MODULE_FIRMWARE(api) | 76 | #define IWL6000G2B_MODULE_FIRMWARE(api) _IWL6000G2B_MODULE_FIRMWARE(api) |
79 | 77 | ||
80 | #define IWL130_FW_PRE "iwlwifi-130-" | ||
81 | #define _IWL130_MODULE_FIRMWARE(api) IWL130_FW_PRE #api ".ucode" | ||
82 | #define IWL130_MODULE_FIRMWARE(api) _IWL130_MODULE_FIRMWARE(api) | ||
83 | |||
84 | static void iwl6000_set_ct_threshold(struct iwl_priv *priv) | 78 | static void iwl6000_set_ct_threshold(struct iwl_priv *priv) |
85 | { | 79 | { |
86 | /* want Celsius */ | 80 | /* want Celsius */ |
@@ -188,7 +182,11 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv) | |||
188 | priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; | 182 | priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR; |
189 | 183 | ||
190 | priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant); | 184 | priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant); |
191 | priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant); | 185 | if (priv->cfg->rx_with_siso_diversity) |
186 | priv->hw_params.rx_chains_num = 1; | ||
187 | else | ||
188 | priv->hw_params.rx_chains_num = | ||
189 | num_of_ant(priv->cfg->valid_rx_ant); | ||
192 | priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant; | 190 | priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant; |
193 | priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant; | 191 | priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant; |
194 | 192 | ||
@@ -328,14 +326,16 @@ static struct iwl_lib_ops iwl6000_lib = { | |||
328 | .query_addr = iwlagn_eeprom_query_addr, | 326 | .query_addr = iwlagn_eeprom_query_addr, |
329 | .update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower, | 327 | .update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower, |
330 | }, | 328 | }, |
331 | .post_associate = iwl_post_associate, | 329 | .isr_ops = { |
332 | .isr = iwl_isr_ict, | 330 | .isr = iwl_isr_ict, |
333 | .config_ap = iwl_config_ap, | 331 | .free = iwl_free_isr_ict, |
332 | .alloc = iwl_alloc_isr_ict, | ||
333 | .reset = iwl_reset_ict, | ||
334 | .disable = iwl_disable_ict, | ||
335 | }, | ||
334 | .temp_ops = { | 336 | .temp_ops = { |
335 | .temperature = iwlagn_temperature, | 337 | .temperature = iwlagn_temperature, |
336 | }, | 338 | }, |
337 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
338 | .update_bcast_stations = iwl_update_bcast_stations, | ||
339 | .debugfs_ops = { | 339 | .debugfs_ops = { |
340 | .rx_stats_read = iwl_ucode_rx_stats_read, | 340 | .rx_stats_read = iwl_ucode_rx_stats_read, |
341 | .tx_stats_read = iwl_ucode_tx_stats_read, | 341 | .tx_stats_read = iwl_ucode_tx_stats_read, |
@@ -343,7 +343,6 @@ static struct iwl_lib_ops iwl6000_lib = { | |||
343 | .bt_stats_read = iwl_ucode_bt_stats_read, | 343 | .bt_stats_read = iwl_ucode_bt_stats_read, |
344 | .reply_tx_error = iwl_reply_tx_error_read, | 344 | .reply_tx_error = iwl_reply_tx_error_read, |
345 | }, | 345 | }, |
346 | .recover_from_tx_stall = iwl_bg_monitor_recover, | ||
347 | .check_plcp_health = iwl_good_plcp_health, | 346 | .check_plcp_health = iwl_good_plcp_health, |
348 | .check_ack_health = iwl_good_ack_health, | 347 | .check_ack_health = iwl_good_ack_health, |
349 | .txfifo_flush = iwlagn_txfifo_flush, | 348 | .txfifo_flush = iwlagn_txfifo_flush, |
@@ -399,14 +398,16 @@ static struct iwl_lib_ops iwl6000g2b_lib = { | |||
399 | .query_addr = iwlagn_eeprom_query_addr, | 398 | .query_addr = iwlagn_eeprom_query_addr, |
400 | .update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower, | 399 | .update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower, |
401 | }, | 400 | }, |
402 | .post_associate = iwl_post_associate, | 401 | .isr_ops = { |
403 | .isr = iwl_isr_ict, | 402 | .isr = iwl_isr_ict, |
404 | .config_ap = iwl_config_ap, | 403 | .free = iwl_free_isr_ict, |
404 | .alloc = iwl_alloc_isr_ict, | ||
405 | .reset = iwl_reset_ict, | ||
406 | .disable = iwl_disable_ict, | ||
407 | }, | ||
405 | .temp_ops = { | 408 | .temp_ops = { |
406 | .temperature = iwlagn_temperature, | 409 | .temperature = iwlagn_temperature, |
407 | }, | 410 | }, |
408 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
409 | .update_bcast_stations = iwl_update_bcast_stations, | ||
410 | .debugfs_ops = { | 411 | .debugfs_ops = { |
411 | .rx_stats_read = iwl_ucode_rx_stats_read, | 412 | .rx_stats_read = iwl_ucode_rx_stats_read, |
412 | .tx_stats_read = iwl_ucode_tx_stats_read, | 413 | .tx_stats_read = iwl_ucode_tx_stats_read, |
@@ -414,7 +415,6 @@ static struct iwl_lib_ops iwl6000g2b_lib = { | |||
414 | .bt_stats_read = iwl_ucode_bt_stats_read, | 415 | .bt_stats_read = iwl_ucode_bt_stats_read, |
415 | .reply_tx_error = iwl_reply_tx_error_read, | 416 | .reply_tx_error = iwl_reply_tx_error_read, |
416 | }, | 417 | }, |
417 | .recover_from_tx_stall = iwl_bg_monitor_recover, | ||
418 | .check_plcp_health = iwl_good_plcp_health, | 418 | .check_plcp_health = iwl_good_plcp_health, |
419 | .check_ack_health = iwl_good_ack_health, | 419 | .check_ack_health = iwl_good_ack_health, |
420 | .txfifo_flush = iwlagn_txfifo_flush, | 420 | .txfifo_flush = iwlagn_txfifo_flush, |
@@ -439,6 +439,7 @@ static const struct iwl_ops iwl6000_ops = { | |||
439 | .hcmd = &iwlagn_hcmd, | 439 | .hcmd = &iwlagn_hcmd, |
440 | .utils = &iwlagn_hcmd_utils, | 440 | .utils = &iwlagn_hcmd_utils, |
441 | .led = &iwlagn_led_ops, | 441 | .led = &iwlagn_led_ops, |
442 | .ieee80211_ops = &iwlagn_hw_ops, | ||
442 | }; | 443 | }; |
443 | 444 | ||
444 | static const struct iwl_ops iwl6050_ops = { | 445 | static const struct iwl_ops iwl6050_ops = { |
@@ -447,6 +448,7 @@ static const struct iwl_ops iwl6050_ops = { | |||
447 | .utils = &iwlagn_hcmd_utils, | 448 | .utils = &iwlagn_hcmd_utils, |
448 | .led = &iwlagn_led_ops, | 449 | .led = &iwlagn_led_ops, |
449 | .nic = &iwl6050_nic_ops, | 450 | .nic = &iwl6050_nic_ops, |
451 | .ieee80211_ops = &iwlagn_hw_ops, | ||
450 | }; | 452 | }; |
451 | 453 | ||
452 | static const struct iwl_ops iwl6050g2_ops = { | 454 | static const struct iwl_ops iwl6050g2_ops = { |
@@ -455,6 +457,7 @@ static const struct iwl_ops iwl6050g2_ops = { | |||
455 | .utils = &iwlagn_hcmd_utils, | 457 | .utils = &iwlagn_hcmd_utils, |
456 | .led = &iwlagn_led_ops, | 458 | .led = &iwlagn_led_ops, |
457 | .nic = &iwl6050g2_nic_ops, | 459 | .nic = &iwl6050g2_nic_ops, |
460 | .ieee80211_ops = &iwlagn_hw_ops, | ||
458 | }; | 461 | }; |
459 | 462 | ||
460 | static const struct iwl_ops iwl6000g2b_ops = { | 463 | static const struct iwl_ops iwl6000g2b_ops = { |
@@ -462,6 +465,7 @@ static const struct iwl_ops iwl6000g2b_ops = { | |||
462 | .hcmd = &iwlagn_bt_hcmd, | 465 | .hcmd = &iwlagn_bt_hcmd, |
463 | .utils = &iwlagn_hcmd_utils, | 466 | .utils = &iwlagn_hcmd_utils, |
464 | .led = &iwlagn_led_ops, | 467 | .led = &iwlagn_led_ops, |
468 | .ieee80211_ops = &iwlagn_hw_ops, | ||
465 | }; | 469 | }; |
466 | 470 | ||
467 | static struct iwl_base_params iwl6000_base_params = { | 471 | static struct iwl_base_params iwl6000_base_params = { |
@@ -480,11 +484,12 @@ static struct iwl_base_params iwl6000_base_params = { | |||
480 | .support_ct_kill_exit = true, | 484 | .support_ct_kill_exit = true, |
481 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, | 485 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, |
482 | .chain_noise_scale = 1000, | 486 | .chain_noise_scale = 1000, |
483 | .monitor_recover_period = IWL_DEF_MONITORING_PERIOD, | 487 | .wd_timeout = IWL_DEF_WD_TIMEOUT, |
484 | .max_event_log_size = 512, | 488 | .max_event_log_size = 512, |
485 | .ucode_tracing = true, | 489 | .ucode_tracing = true, |
486 | .sensitivity_calib_by_driver = true, | 490 | .sensitivity_calib_by_driver = true, |
487 | .chain_noise_calib_by_driver = true, | 491 | .chain_noise_calib_by_driver = true, |
492 | .shadow_reg_enable = true, | ||
488 | }; | 493 | }; |
489 | 494 | ||
490 | static struct iwl_base_params iwl6050_base_params = { | 495 | static struct iwl_base_params iwl6050_base_params = { |
@@ -503,13 +508,14 @@ static struct iwl_base_params iwl6050_base_params = { | |||
503 | .support_ct_kill_exit = true, | 508 | .support_ct_kill_exit = true, |
504 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, | 509 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, |
505 | .chain_noise_scale = 1500, | 510 | .chain_noise_scale = 1500, |
506 | .monitor_recover_period = IWL_DEF_MONITORING_PERIOD, | 511 | .wd_timeout = IWL_DEF_WD_TIMEOUT, |
507 | .max_event_log_size = 1024, | 512 | .max_event_log_size = 1024, |
508 | .ucode_tracing = true, | 513 | .ucode_tracing = true, |
509 | .sensitivity_calib_by_driver = true, | 514 | .sensitivity_calib_by_driver = true, |
510 | .chain_noise_calib_by_driver = true, | 515 | .chain_noise_calib_by_driver = true, |
516 | .shadow_reg_enable = true, | ||
511 | }; | 517 | }; |
512 | static struct iwl_base_params iwl6000_coex_base_params = { | 518 | static struct iwl_base_params iwl6000_g2_base_params = { |
513 | .eeprom_size = OTP_LOW_IMAGE_SIZE, | 519 | .eeprom_size = OTP_LOW_IMAGE_SIZE, |
514 | .num_of_queues = IWLAGN_NUM_QUEUES, | 520 | .num_of_queues = IWLAGN_NUM_QUEUES, |
515 | .num_of_ampdu_queues = IWLAGN_NUM_AMPDU_QUEUES, | 521 | .num_of_ampdu_queues = IWLAGN_NUM_AMPDU_QUEUES, |
@@ -518,18 +524,19 @@ static struct iwl_base_params iwl6000_coex_base_params = { | |||
518 | .use_bsm = false, | 524 | .use_bsm = false, |
519 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, | 525 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, |
520 | .shadow_ram_support = true, | 526 | .shadow_ram_support = true, |
521 | .led_compensation = 51, | 527 | .led_compensation = 57, |
522 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | 528 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, |
523 | .supports_idle = true, | 529 | .supports_idle = true, |
524 | .adv_thermal_throttle = true, | 530 | .adv_thermal_throttle = true, |
525 | .support_ct_kill_exit = true, | 531 | .support_ct_kill_exit = true, |
526 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, | 532 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, |
527 | .chain_noise_scale = 1000, | 533 | .chain_noise_scale = 1000, |
528 | .monitor_recover_period = IWL_LONG_MONITORING_PERIOD, | 534 | .wd_timeout = IWL_LONG_WD_TIMEOUT, |
529 | .max_event_log_size = 512, | 535 | .max_event_log_size = 512, |
530 | .ucode_tracing = true, | 536 | .ucode_tracing = true, |
531 | .sensitivity_calib_by_driver = true, | 537 | .sensitivity_calib_by_driver = true, |
532 | .chain_noise_calib_by_driver = true, | 538 | .chain_noise_calib_by_driver = true, |
539 | .shadow_reg_enable = true, | ||
533 | }; | 540 | }; |
534 | 541 | ||
535 | static struct iwl_ht_params iwl6000_ht_params = { | 542 | static struct iwl_ht_params iwl6000_ht_params = { |
@@ -541,271 +548,169 @@ static struct iwl_bt_params iwl6000_bt_params = { | |||
541 | .bt_statistics = true, | 548 | .bt_statistics = true, |
542 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 549 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
543 | .advanced_bt_coexist = true, | 550 | .advanced_bt_coexist = true, |
551 | .agg_time_limit = BT_AGG_THRESHOLD_DEF, | ||
544 | .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, | 552 | .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE, |
545 | .bt_prio_boost = IWLAGN_BT_PRIO_BOOST_DEFAULT, | 553 | .bt_prio_boost = IWLAGN_BT_PRIO_BOOST_DEFAULT, |
554 | .bt_sco_disable = true, | ||
555 | }; | ||
556 | |||
557 | #define IWL_DEVICE_6005 \ | ||
558 | .fw_name_pre = IWL6000G2A_FW_PRE, \ | ||
559 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, \ | ||
560 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, \ | ||
561 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, \ | ||
562 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, \ | ||
563 | .ops = &iwl6000_ops, \ | ||
564 | .mod_params = &iwlagn_mod_params, \ | ||
565 | .base_params = &iwl6000_g2_base_params, \ | ||
566 | .need_dc_calib = true, \ | ||
567 | .need_temp_offset_calib = true, \ | ||
568 | .led_mode = IWL_LED_RF_STATE | ||
569 | |||
570 | struct iwl_cfg iwl6005_2agn_cfg = { | ||
571 | .name = "Intel(R) Centrino(R) Advanced-N 6205 AGN", | ||
572 | IWL_DEVICE_6005, | ||
573 | .ht_params = &iwl6000_ht_params, | ||
546 | }; | 574 | }; |
547 | 575 | ||
548 | struct iwl_cfg iwl6000g2a_2agn_cfg = { | 576 | struct iwl_cfg iwl6005_2abg_cfg = { |
549 | .name = "6000 Series 2x2 AGN Gen2a", | 577 | .name = "Intel(R) Centrino(R) Advanced-N 6205 ABG", |
550 | .fw_name_pre = IWL6000G2A_FW_PRE, | 578 | IWL_DEVICE_6005, |
551 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 579 | }; |
552 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 580 | |
553 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | 581 | struct iwl_cfg iwl6005_2bg_cfg = { |
554 | .valid_tx_ant = ANT_AB, | 582 | .name = "Intel(R) Centrino(R) Advanced-N 6205 BG", |
555 | .valid_rx_ant = ANT_AB, | 583 | IWL_DEVICE_6005, |
556 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 584 | }; |
557 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 585 | |
558 | .ops = &iwl6000_ops, | 586 | #define IWL_DEVICE_6030 \ |
559 | .mod_params = &iwlagn_mod_params, | 587 | .fw_name_pre = IWL6000G2B_FW_PRE, \ |
560 | .base_params = &iwl6000_base_params, | 588 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, \ |
589 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, \ | ||
590 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, \ | ||
591 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, \ | ||
592 | .ops = &iwl6000g2b_ops, \ | ||
593 | .mod_params = &iwlagn_mod_params, \ | ||
594 | .base_params = &iwl6000_g2_base_params, \ | ||
595 | .bt_params = &iwl6000_bt_params, \ | ||
596 | .need_dc_calib = true, \ | ||
597 | .need_temp_offset_calib = true, \ | ||
598 | .led_mode = IWL_LED_RF_STATE, \ | ||
599 | .adv_pm = true, \ | ||
600 | /* \ | ||
601 | *Due to bluetooth, we transmit 2.4 GHz probes \ | ||
602 | * only on antenna A \ | ||
603 | */ \ | ||
604 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A | ||
605 | |||
606 | struct iwl_cfg iwl6030_2agn_cfg = { | ||
607 | .name = "Intel(R) Centrino(R) Advanced-N 6230 AGN", | ||
608 | IWL_DEVICE_6030, | ||
561 | .ht_params = &iwl6000_ht_params, | 609 | .ht_params = &iwl6000_ht_params, |
562 | .need_dc_calib = true, | 610 | }; |
563 | .need_temp_offset_calib = true, | 611 | |
564 | .use_new_eeprom_reading = true, | 612 | struct iwl_cfg iwl6030_2abg_cfg = { |
565 | }; | 613 | .name = "Intel(R) Centrino(R) Advanced-N 6230 ABG", |
566 | 614 | IWL_DEVICE_6030, | |
567 | struct iwl_cfg iwl6000g2a_2abg_cfg = { | 615 | }; |
568 | .name = "6000 Series 2x2 ABG Gen2a", | 616 | |
569 | .fw_name_pre = IWL6000G2A_FW_PRE, | 617 | struct iwl_cfg iwl6030_2bgn_cfg = { |
570 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 618 | .name = "Intel(R) Centrino(R) Advanced-N 6230 BGN", |
571 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 619 | IWL_DEVICE_6030, |
572 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
573 | .valid_tx_ant = ANT_AB, | ||
574 | .valid_rx_ant = ANT_AB, | ||
575 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
576 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
577 | .ops = &iwl6000_ops, | ||
578 | .mod_params = &iwlagn_mod_params, | ||
579 | .base_params = &iwl6000_base_params, | ||
580 | .need_dc_calib = true, | ||
581 | .need_temp_offset_calib = true, | ||
582 | .use_new_eeprom_reading = true, | ||
583 | }; | ||
584 | |||
585 | struct iwl_cfg iwl6000g2a_2bg_cfg = { | ||
586 | .name = "6000 Series 2x2 BG Gen2a", | ||
587 | .fw_name_pre = IWL6000G2A_FW_PRE, | ||
588 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | ||
589 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | ||
590 | .sku = IWL_SKU_G, | ||
591 | .valid_tx_ant = ANT_AB, | ||
592 | .valid_rx_ant = ANT_AB, | ||
593 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
594 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
595 | .ops = &iwl6000_ops, | ||
596 | .mod_params = &iwlagn_mod_params, | ||
597 | .base_params = &iwl6000_base_params, | ||
598 | .need_dc_calib = true, | ||
599 | .need_temp_offset_calib = true, | ||
600 | .use_new_eeprom_reading = true, | ||
601 | }; | ||
602 | |||
603 | struct iwl_cfg iwl6000g2b_2agn_cfg = { | ||
604 | .name = "6000 Series 2x2 AGN Gen2b", | ||
605 | .fw_name_pre = IWL6000G2B_FW_PRE, | ||
606 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | ||
607 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | ||
608 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
609 | .valid_tx_ant = ANT_AB, | ||
610 | .valid_rx_ant = ANT_AB, | ||
611 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
612 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
613 | .ops = &iwl6000g2b_ops, | ||
614 | .mod_params = &iwlagn_mod_params, | ||
615 | .base_params = &iwl6000_coex_base_params, | ||
616 | .bt_params = &iwl6000_bt_params, | ||
617 | .ht_params = &iwl6000_ht_params, | 620 | .ht_params = &iwl6000_ht_params, |
618 | .need_dc_calib = true, | 621 | }; |
619 | .need_temp_offset_calib = true, | 622 | |
620 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 623 | struct iwl_cfg iwl6030_2bg_cfg = { |
621 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 624 | .name = "Intel(R) Centrino(R) Advanced-N 6230 BG", |
622 | .use_new_eeprom_reading = true, | 625 | IWL_DEVICE_6030, |
623 | }; | 626 | }; |
624 | 627 | ||
625 | struct iwl_cfg iwl6000g2b_2abg_cfg = { | 628 | struct iwl_cfg iwl1030_bgn_cfg = { |
626 | .name = "6000 Series 2x2 ABG Gen2b", | 629 | .name = "Intel(R) Centrino(R) Wireless-N 1030 BGN", |
627 | .fw_name_pre = IWL6000G2B_FW_PRE, | 630 | IWL_DEVICE_6030, |
628 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | ||
629 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | ||
630 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
631 | .valid_tx_ant = ANT_AB, | ||
632 | .valid_rx_ant = ANT_AB, | ||
633 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
634 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
635 | .ops = &iwl6000g2b_ops, | ||
636 | .mod_params = &iwlagn_mod_params, | ||
637 | .base_params = &iwl6000_coex_base_params, | ||
638 | .bt_params = &iwl6000_bt_params, | ||
639 | .need_dc_calib = true, | ||
640 | .need_temp_offset_calib = true, | ||
641 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | ||
642 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | ||
643 | .use_new_eeprom_reading = true, | ||
644 | }; | ||
645 | |||
646 | struct iwl_cfg iwl6000g2b_2bgn_cfg = { | ||
647 | .name = "6000 Series 2x2 BGN Gen2b", | ||
648 | .fw_name_pre = IWL6000G2B_FW_PRE, | ||
649 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | ||
650 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | ||
651 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
652 | .valid_tx_ant = ANT_AB, | ||
653 | .valid_rx_ant = ANT_AB, | ||
654 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
655 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
656 | .ops = &iwl6000g2b_ops, | ||
657 | .mod_params = &iwlagn_mod_params, | ||
658 | .base_params = &iwl6000_coex_base_params, | ||
659 | .bt_params = &iwl6000_bt_params, | ||
660 | .ht_params = &iwl6000_ht_params, | 631 | .ht_params = &iwl6000_ht_params, |
661 | .need_dc_calib = true, | 632 | }; |
662 | .need_temp_offset_calib = true, | 633 | |
663 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 634 | struct iwl_cfg iwl1030_bg_cfg = { |
664 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 635 | .name = "Intel(R) Centrino(R) Wireless-N 1030 BG", |
665 | .use_new_eeprom_reading = true, | 636 | IWL_DEVICE_6030, |
666 | }; | 637 | }; |
667 | 638 | ||
668 | struct iwl_cfg iwl6000g2b_2bg_cfg = { | 639 | struct iwl_cfg iwl130_bgn_cfg = { |
669 | .name = "6000 Series 2x2 BG Gen2b", | 640 | .name = "Intel(R) Centrino(R) Wireless-N 130 BGN", |
670 | .fw_name_pre = IWL6000G2B_FW_PRE, | 641 | IWL_DEVICE_6030, |
671 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | ||
672 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | ||
673 | .sku = IWL_SKU_G, | ||
674 | .valid_tx_ant = ANT_AB, | ||
675 | .valid_rx_ant = ANT_AB, | ||
676 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
677 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
678 | .ops = &iwl6000g2b_ops, | ||
679 | .mod_params = &iwlagn_mod_params, | ||
680 | .base_params = &iwl6000_coex_base_params, | ||
681 | .bt_params = &iwl6000_bt_params, | ||
682 | .need_dc_calib = true, | ||
683 | .need_temp_offset_calib = true, | ||
684 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | ||
685 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | ||
686 | .use_new_eeprom_reading = true, | ||
687 | }; | ||
688 | |||
689 | struct iwl_cfg iwl6000g2b_bgn_cfg = { | ||
690 | .name = "6000 Series 1x2 BGN Gen2b", | ||
691 | .fw_name_pre = IWL6000G2B_FW_PRE, | ||
692 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | ||
693 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | ||
694 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
695 | .valid_tx_ant = ANT_A, | ||
696 | .valid_rx_ant = ANT_AB, | ||
697 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
698 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
699 | .ops = &iwl6000g2b_ops, | ||
700 | .mod_params = &iwlagn_mod_params, | ||
701 | .base_params = &iwl6000_coex_base_params, | ||
702 | .bt_params = &iwl6000_bt_params, | ||
703 | .ht_params = &iwl6000_ht_params, | 642 | .ht_params = &iwl6000_ht_params, |
704 | .need_dc_calib = true, | 643 | .rx_with_siso_diversity = true, |
705 | .need_temp_offset_calib = true, | 644 | }; |
706 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 645 | |
707 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 646 | struct iwl_cfg iwl130_bg_cfg = { |
708 | .use_new_eeprom_reading = true, | 647 | .name = "Intel(R) Centrino(R) Wireless-N 130 BG", |
709 | }; | 648 | IWL_DEVICE_6030, |
710 | 649 | .rx_with_siso_diversity = true, | |
711 | struct iwl_cfg iwl6000g2b_bg_cfg = { | ||
712 | .name = "6000 Series 1x2 BG Gen2b", | ||
713 | .fw_name_pre = IWL6000G2B_FW_PRE, | ||
714 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | ||
715 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | ||
716 | .sku = IWL_SKU_G, | ||
717 | .valid_tx_ant = ANT_A, | ||
718 | .valid_rx_ant = ANT_AB, | ||
719 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
720 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
721 | .ops = &iwl6000g2b_ops, | ||
722 | .mod_params = &iwlagn_mod_params, | ||
723 | .base_params = &iwl6000_coex_base_params, | ||
724 | .bt_params = &iwl6000_bt_params, | ||
725 | .need_dc_calib = true, | ||
726 | .need_temp_offset_calib = true, | ||
727 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | ||
728 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | ||
729 | .use_new_eeprom_reading = true, | ||
730 | }; | 650 | }; |
731 | 651 | ||
732 | /* | 652 | /* |
733 | * "i": Internal configuration, use internal Power Amplifier | 653 | * "i": Internal configuration, use internal Power Amplifier |
734 | */ | 654 | */ |
655 | #define IWL_DEVICE_6000i \ | ||
656 | .fw_name_pre = IWL6000_FW_PRE, \ | ||
657 | .ucode_api_max = IWL6000_UCODE_API_MAX, \ | ||
658 | .ucode_api_min = IWL6000_UCODE_API_MIN, \ | ||
659 | .valid_tx_ant = ANT_BC, /* .cfg overwrite */ \ | ||
660 | .valid_rx_ant = ANT_BC, /* .cfg overwrite */ \ | ||
661 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, \ | ||
662 | .eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION, \ | ||
663 | .ops = &iwl6000_ops, \ | ||
664 | .mod_params = &iwlagn_mod_params, \ | ||
665 | .base_params = &iwl6000_base_params, \ | ||
666 | .pa_type = IWL_PA_INTERNAL, \ | ||
667 | .led_mode = IWL_LED_BLINK | ||
668 | |||
735 | struct iwl_cfg iwl6000i_2agn_cfg = { | 669 | struct iwl_cfg iwl6000i_2agn_cfg = { |
736 | .name = "Intel(R) Centrino(R) Advanced-N 6200 AGN", | 670 | .name = "Intel(R) Centrino(R) Advanced-N 6200 AGN", |
737 | .fw_name_pre = IWL6000_FW_PRE, | 671 | IWL_DEVICE_6000i, |
738 | .ucode_api_max = IWL6000_UCODE_API_MAX, | ||
739 | .ucode_api_min = IWL6000_UCODE_API_MIN, | ||
740 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
741 | .valid_tx_ant = ANT_BC, | ||
742 | .valid_rx_ant = ANT_BC, | ||
743 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | ||
744 | .eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION, | ||
745 | .ops = &iwl6000_ops, | ||
746 | .mod_params = &iwlagn_mod_params, | ||
747 | .base_params = &iwl6000_base_params, | ||
748 | .ht_params = &iwl6000_ht_params, | 672 | .ht_params = &iwl6000_ht_params, |
749 | .pa_type = IWL_PA_INTERNAL, | ||
750 | }; | 673 | }; |
751 | 674 | ||
752 | struct iwl_cfg iwl6000i_2abg_cfg = { | 675 | struct iwl_cfg iwl6000i_2abg_cfg = { |
753 | .name = "Intel(R) Centrino(R) Advanced-N 6200 ABG", | 676 | .name = "Intel(R) Centrino(R) Advanced-N 6200 ABG", |
754 | .fw_name_pre = IWL6000_FW_PRE, | 677 | IWL_DEVICE_6000i, |
755 | .ucode_api_max = IWL6000_UCODE_API_MAX, | ||
756 | .ucode_api_min = IWL6000_UCODE_API_MIN, | ||
757 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
758 | .valid_tx_ant = ANT_BC, | ||
759 | .valid_rx_ant = ANT_BC, | ||
760 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | ||
761 | .eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION, | ||
762 | .ops = &iwl6000_ops, | ||
763 | .mod_params = &iwlagn_mod_params, | ||
764 | .base_params = &iwl6000_base_params, | ||
765 | .pa_type = IWL_PA_INTERNAL, | ||
766 | }; | 678 | }; |
767 | 679 | ||
768 | struct iwl_cfg iwl6000i_2bg_cfg = { | 680 | struct iwl_cfg iwl6000i_2bg_cfg = { |
769 | .name = "Intel(R) Centrino(R) Advanced-N 6200 BG", | 681 | .name = "Intel(R) Centrino(R) Advanced-N 6200 BG", |
770 | .fw_name_pre = IWL6000_FW_PRE, | 682 | IWL_DEVICE_6000i, |
771 | .ucode_api_max = IWL6000_UCODE_API_MAX, | 683 | }; |
772 | .ucode_api_min = IWL6000_UCODE_API_MIN, | 684 | |
773 | .sku = IWL_SKU_G, | 685 | #define IWL_DEVICE_6050 \ |
774 | .valid_tx_ant = ANT_BC, | 686 | .fw_name_pre = IWL6050_FW_PRE, \ |
775 | .valid_rx_ant = ANT_BC, | 687 | .ucode_api_max = IWL6050_UCODE_API_MAX, \ |
776 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | 688 | .ucode_api_min = IWL6050_UCODE_API_MIN, \ |
777 | .eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION, | 689 | .ops = &iwl6050_ops, \ |
778 | .ops = &iwl6000_ops, | 690 | .eeprom_ver = EEPROM_6050_EEPROM_VERSION, \ |
779 | .mod_params = &iwlagn_mod_params, | 691 | .eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION, \ |
780 | .base_params = &iwl6000_base_params, | 692 | .mod_params = &iwlagn_mod_params, \ |
781 | .pa_type = IWL_PA_INTERNAL, | 693 | .base_params = &iwl6050_base_params, \ |
782 | }; | 694 | .need_dc_calib = true, \ |
695 | .led_mode = IWL_LED_BLINK, \ | ||
696 | .internal_wimax_coex = true | ||
783 | 697 | ||
784 | struct iwl_cfg iwl6050_2agn_cfg = { | 698 | struct iwl_cfg iwl6050_2agn_cfg = { |
785 | .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN", | 699 | .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN", |
786 | .fw_name_pre = IWL6050_FW_PRE, | 700 | IWL_DEVICE_6050, |
787 | .ucode_api_max = IWL6050_UCODE_API_MAX, | ||
788 | .ucode_api_min = IWL6050_UCODE_API_MIN, | ||
789 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
790 | .valid_tx_ant = ANT_AB, | ||
791 | .valid_rx_ant = ANT_AB, | ||
792 | .ops = &iwl6050_ops, | ||
793 | .eeprom_ver = EEPROM_6050_EEPROM_VERSION, | ||
794 | .eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION, | ||
795 | .mod_params = &iwlagn_mod_params, | ||
796 | .base_params = &iwl6050_base_params, | ||
797 | .ht_params = &iwl6000_ht_params, | 701 | .ht_params = &iwl6000_ht_params, |
798 | .need_dc_calib = true, | ||
799 | }; | 702 | }; |
800 | 703 | ||
801 | struct iwl_cfg iwl6050g2_bgn_cfg = { | 704 | struct iwl_cfg iwl6050_2abg_cfg = { |
802 | .name = "6050 Series 1x2 BGN Gen2", | 705 | .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG", |
706 | IWL_DEVICE_6050, | ||
707 | }; | ||
708 | |||
709 | struct iwl_cfg iwl6150_bgn_cfg = { | ||
710 | .name = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BGN", | ||
803 | .fw_name_pre = IWL6050_FW_PRE, | 711 | .fw_name_pre = IWL6050_FW_PRE, |
804 | .ucode_api_max = IWL6050_UCODE_API_MAX, | 712 | .ucode_api_max = IWL6050_UCODE_API_MAX, |
805 | .ucode_api_min = IWL6050_UCODE_API_MIN, | 713 | .ucode_api_min = IWL6050_UCODE_API_MIN, |
806 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
807 | .valid_tx_ant = ANT_A, | ||
808 | .valid_rx_ant = ANT_AB, | ||
809 | .eeprom_ver = EEPROM_6050G2_EEPROM_VERSION, | 714 | .eeprom_ver = EEPROM_6050G2_EEPROM_VERSION, |
810 | .eeprom_calib_ver = EEPROM_6050G2_TX_POWER_VERSION, | 715 | .eeprom_calib_ver = EEPROM_6050G2_TX_POWER_VERSION, |
811 | .ops = &iwl6050g2_ops, | 716 | .ops = &iwl6050g2_ops, |
@@ -813,23 +718,8 @@ struct iwl_cfg iwl6050g2_bgn_cfg = { | |||
813 | .base_params = &iwl6050_base_params, | 718 | .base_params = &iwl6050_base_params, |
814 | .ht_params = &iwl6000_ht_params, | 719 | .ht_params = &iwl6000_ht_params, |
815 | .need_dc_calib = true, | 720 | .need_dc_calib = true, |
816 | .use_new_eeprom_reading = true, | 721 | .led_mode = IWL_LED_RF_STATE, |
817 | }; | 722 | .internal_wimax_coex = true, |
818 | |||
819 | struct iwl_cfg iwl6050_2abg_cfg = { | ||
820 | .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG", | ||
821 | .fw_name_pre = IWL6050_FW_PRE, | ||
822 | .ucode_api_max = IWL6050_UCODE_API_MAX, | ||
823 | .ucode_api_min = IWL6050_UCODE_API_MIN, | ||
824 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
825 | .valid_tx_ant = ANT_AB, | ||
826 | .valid_rx_ant = ANT_AB, | ||
827 | .eeprom_ver = EEPROM_6050_EEPROM_VERSION, | ||
828 | .eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION, | ||
829 | .ops = &iwl6050_ops, | ||
830 | .mod_params = &iwlagn_mod_params, | ||
831 | .base_params = &iwl6050_base_params, | ||
832 | .need_dc_calib = true, | ||
833 | }; | 723 | }; |
834 | 724 | ||
835 | struct iwl_cfg iwl6000_3agn_cfg = { | 725 | struct iwl_cfg iwl6000_3agn_cfg = { |
@@ -837,9 +727,6 @@ struct iwl_cfg iwl6000_3agn_cfg = { | |||
837 | .fw_name_pre = IWL6000_FW_PRE, | 727 | .fw_name_pre = IWL6000_FW_PRE, |
838 | .ucode_api_max = IWL6000_UCODE_API_MAX, | 728 | .ucode_api_max = IWL6000_UCODE_API_MAX, |
839 | .ucode_api_min = IWL6000_UCODE_API_MIN, | 729 | .ucode_api_min = IWL6000_UCODE_API_MIN, |
840 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
841 | .valid_tx_ant = ANT_ABC, | ||
842 | .valid_rx_ant = ANT_ABC, | ||
843 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | 730 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, |
844 | .eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION, | 731 | .eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION, |
845 | .ops = &iwl6000_ops, | 732 | .ops = &iwl6000_ops, |
@@ -847,51 +734,10 @@ struct iwl_cfg iwl6000_3agn_cfg = { | |||
847 | .base_params = &iwl6000_base_params, | 734 | .base_params = &iwl6000_base_params, |
848 | .ht_params = &iwl6000_ht_params, | 735 | .ht_params = &iwl6000_ht_params, |
849 | .need_dc_calib = true, | 736 | .need_dc_calib = true, |
850 | }; | 737 | .led_mode = IWL_LED_BLINK, |
851 | |||
852 | struct iwl_cfg iwl130_bgn_cfg = { | ||
853 | .name = "Intel(R) 130 Series 1x1 BGN", | ||
854 | .fw_name_pre = IWL6000G2B_FW_PRE, | ||
855 | .ucode_api_max = IWL130_UCODE_API_MAX, | ||
856 | .ucode_api_min = IWL130_UCODE_API_MIN, | ||
857 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
858 | .valid_tx_ant = ANT_A, | ||
859 | .valid_rx_ant = ANT_A, | ||
860 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
861 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
862 | .ops = &iwl6000g2b_ops, | ||
863 | .mod_params = &iwlagn_mod_params, | ||
864 | .base_params = &iwl6000_coex_base_params, | ||
865 | .bt_params = &iwl6000_bt_params, | ||
866 | .ht_params = &iwl6000_ht_params, | ||
867 | .need_dc_calib = true, | ||
868 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | ||
869 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | ||
870 | .use_new_eeprom_reading = true, | ||
871 | }; | ||
872 | |||
873 | struct iwl_cfg iwl130_bg_cfg = { | ||
874 | .name = "Intel(R) 130 Series 1x2 BG", | ||
875 | .fw_name_pre = IWL6000G2B_FW_PRE, | ||
876 | .ucode_api_max = IWL130_UCODE_API_MAX, | ||
877 | .ucode_api_min = IWL130_UCODE_API_MIN, | ||
878 | .sku = IWL_SKU_G, | ||
879 | .valid_tx_ant = ANT_A, | ||
880 | .valid_rx_ant = ANT_A, | ||
881 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | ||
882 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | ||
883 | .ops = &iwl6000g2b_ops, | ||
884 | .mod_params = &iwlagn_mod_params, | ||
885 | .base_params = &iwl6000_coex_base_params, | ||
886 | .bt_params = &iwl6000_bt_params, | ||
887 | .need_dc_calib = true, | ||
888 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | ||
889 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | ||
890 | .use_new_eeprom_reading = true, | ||
891 | }; | 738 | }; |
892 | 739 | ||
893 | MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); | 740 | MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); |
894 | MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX)); | 741 | MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX)); |
895 | MODULE_FIRMWARE(IWL6000G2A_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); | 742 | MODULE_FIRMWARE(IWL6000G2A_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); |
896 | MODULE_FIRMWARE(IWL6000G2B_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); | 743 | MODULE_FIRMWARE(IWL6000G2B_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); |
897 | MODULE_FIRMWARE(IWL130_MODULE_FIRMWARE(IWL130_UCODE_API_MAX)); | ||