diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2010-09-23 18:24:22 -0400 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2010-10-14 12:45:58 -0400 |
commit | de05ead8f8649788603afc470eb1c2ea2b8b1655 (patch) | |
tree | 1144f4196feef0a09bc1b0d6b60b6ac7db28d325 /drivers/net/wireless | |
parent | c23cc81a5e5c1d4486b662cedd0afcdf9145f154 (diff) |
iwlgn: need longer tx queue stuck timer for coex devices
For BT/WiFi combo devices, need longer tx stuck queue
timer, so those devices won't reload firmware too often.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 38 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 11 |
2 files changed, 34 insertions, 15 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index 4810258aefd9..3eaea6fcdaa7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -509,6 +509,28 @@ static struct iwl_base_params iwl6050_base_params = { | |||
509 | .sensitivity_calib_by_driver = true, | 509 | .sensitivity_calib_by_driver = true, |
510 | .chain_noise_calib_by_driver = true, | 510 | .chain_noise_calib_by_driver = true, |
511 | }; | 511 | }; |
512 | static struct iwl_base_params iwl6000_coex_base_params = { | ||
513 | .eeprom_size = OTP_LOW_IMAGE_SIZE, | ||
514 | .num_of_queues = IWLAGN_NUM_QUEUES, | ||
515 | .num_of_ampdu_queues = IWLAGN_NUM_AMPDU_QUEUES, | ||
516 | .pll_cfg_val = 0, | ||
517 | .set_l0s = true, | ||
518 | .use_bsm = false, | ||
519 | .max_ll_items = OTP_MAX_LL_ITEMS_6x00, | ||
520 | .shadow_ram_support = true, | ||
521 | .led_compensation = 51, | ||
522 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
523 | .supports_idle = true, | ||
524 | .adv_thermal_throttle = true, | ||
525 | .support_ct_kill_exit = true, | ||
526 | .plcp_delta_threshold = IWL_MAX_PLCP_ERR_THRESHOLD_DEF, | ||
527 | .chain_noise_scale = 1000, | ||
528 | .monitor_recover_period = IWL_LONG_MONITORING_PERIOD, | ||
529 | .max_event_log_size = 512, | ||
530 | .ucode_tracing = true, | ||
531 | .sensitivity_calib_by_driver = true, | ||
532 | .chain_noise_calib_by_driver = true, | ||
533 | }; | ||
512 | 534 | ||
513 | static struct iwl_ht_params iwl6000_ht_params = { | 535 | static struct iwl_ht_params iwl6000_ht_params = { |
514 | .ht_greenfield_support = true, | 536 | .ht_greenfield_support = true, |
@@ -587,7 +609,7 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = { | |||
587 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 609 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
588 | .ops = &iwl6000g2b_ops, | 610 | .ops = &iwl6000g2b_ops, |
589 | .mod_params = &iwlagn_mod_params, | 611 | .mod_params = &iwlagn_mod_params, |
590 | .base_params = &iwl6000_base_params, | 612 | .base_params = &iwl6000_coex_base_params, |
591 | .bt_params = &iwl6000_bt_params, | 613 | .bt_params = &iwl6000_bt_params, |
592 | .ht_params = &iwl6000_ht_params, | 614 | .ht_params = &iwl6000_ht_params, |
593 | .need_dc_calib = true, | 615 | .need_dc_calib = true, |
@@ -608,7 +630,7 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = { | |||
608 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 630 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
609 | .ops = &iwl6000g2b_ops, | 631 | .ops = &iwl6000g2b_ops, |
610 | .mod_params = &iwlagn_mod_params, | 632 | .mod_params = &iwlagn_mod_params, |
611 | .base_params = &iwl6000_base_params, | 633 | .base_params = &iwl6000_coex_base_params, |
612 | .bt_params = &iwl6000_bt_params, | 634 | .bt_params = &iwl6000_bt_params, |
613 | .need_dc_calib = true, | 635 | .need_dc_calib = true, |
614 | .need_temp_offset_calib = true, | 636 | .need_temp_offset_calib = true, |
@@ -628,7 +650,7 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = { | |||
628 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 650 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
629 | .ops = &iwl6000g2b_ops, | 651 | .ops = &iwl6000g2b_ops, |
630 | .mod_params = &iwlagn_mod_params, | 652 | .mod_params = &iwlagn_mod_params, |
631 | .base_params = &iwl6000_base_params, | 653 | .base_params = &iwl6000_coex_base_params, |
632 | .bt_params = &iwl6000_bt_params, | 654 | .bt_params = &iwl6000_bt_params, |
633 | .ht_params = &iwl6000_ht_params, | 655 | .ht_params = &iwl6000_ht_params, |
634 | .need_dc_calib = true, | 656 | .need_dc_calib = true, |
@@ -649,7 +671,7 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = { | |||
649 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 671 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
650 | .ops = &iwl6000g2b_ops, | 672 | .ops = &iwl6000g2b_ops, |
651 | .mod_params = &iwlagn_mod_params, | 673 | .mod_params = &iwlagn_mod_params, |
652 | .base_params = &iwl6000_base_params, | 674 | .base_params = &iwl6000_coex_base_params, |
653 | .bt_params = &iwl6000_bt_params, | 675 | .bt_params = &iwl6000_bt_params, |
654 | .need_dc_calib = true, | 676 | .need_dc_calib = true, |
655 | .need_temp_offset_calib = true, | 677 | .need_temp_offset_calib = true, |
@@ -669,7 +691,7 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = { | |||
669 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 691 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
670 | .ops = &iwl6000g2b_ops, | 692 | .ops = &iwl6000g2b_ops, |
671 | .mod_params = &iwlagn_mod_params, | 693 | .mod_params = &iwlagn_mod_params, |
672 | .base_params = &iwl6000_base_params, | 694 | .base_params = &iwl6000_coex_base_params, |
673 | .bt_params = &iwl6000_bt_params, | 695 | .bt_params = &iwl6000_bt_params, |
674 | .ht_params = &iwl6000_ht_params, | 696 | .ht_params = &iwl6000_ht_params, |
675 | .need_dc_calib = true, | 697 | .need_dc_calib = true, |
@@ -690,7 +712,7 @@ struct iwl_cfg iwl6000g2b_bg_cfg = { | |||
690 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 712 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
691 | .ops = &iwl6000g2b_ops, | 713 | .ops = &iwl6000g2b_ops, |
692 | .mod_params = &iwlagn_mod_params, | 714 | .mod_params = &iwlagn_mod_params, |
693 | .base_params = &iwl6000_base_params, | 715 | .base_params = &iwl6000_coex_base_params, |
694 | .bt_params = &iwl6000_bt_params, | 716 | .bt_params = &iwl6000_bt_params, |
695 | .need_dc_calib = true, | 717 | .need_dc_calib = true, |
696 | .need_temp_offset_calib = true, | 718 | .need_temp_offset_calib = true, |
@@ -829,7 +851,7 @@ struct iwl_cfg iwl130_bgn_cfg = { | |||
829 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 851 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
830 | .ops = &iwl6000g2b_ops, | 852 | .ops = &iwl6000g2b_ops, |
831 | .mod_params = &iwlagn_mod_params, | 853 | .mod_params = &iwlagn_mod_params, |
832 | .base_params = &iwl6000_base_params, | 854 | .base_params = &iwl6000_coex_base_params, |
833 | .bt_params = &iwl6000_bt_params, | 855 | .bt_params = &iwl6000_bt_params, |
834 | .ht_params = &iwl6000_ht_params, | 856 | .ht_params = &iwl6000_ht_params, |
835 | .need_dc_calib = true, | 857 | .need_dc_calib = true, |
@@ -849,7 +871,7 @@ struct iwl_cfg iwl130_bg_cfg = { | |||
849 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, | 871 | .eeprom_calib_ver = EEPROM_6000G2_TX_POWER_VERSION, |
850 | .ops = &iwl6000g2b_ops, | 872 | .ops = &iwl6000g2b_ops, |
851 | .mod_params = &iwlagn_mod_params, | 873 | .mod_params = &iwlagn_mod_params, |
852 | .base_params = &iwl6000_base_params, | 874 | .base_params = &iwl6000_coex_base_params, |
853 | .bt_params = &iwl6000_bt_params, | 875 | .bt_params = &iwl6000_bt_params, |
854 | .need_dc_calib = true, | 876 | .need_dc_calib = true, |
855 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 877 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index b3efbe02df67..89b1827054e5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -2483,13 +2483,10 @@ static int iwl_check_stuck_queue(struct iwl_priv *priv, int cnt) | |||
2483 | "queue %d, not read %d time\n", | 2483 | "queue %d, not read %d time\n", |
2484 | q->id, | 2484 | q->id, |
2485 | q->repeat_same_read_ptr); | 2485 | q->repeat_same_read_ptr); |
2486 | if (priv->cfg->bt_params && | 2486 | mod_timer(&priv->monitor_recover, |
2487 | !priv->cfg->bt_params->advanced_bt_coexist) { | 2487 | jiffies + msecs_to_jiffies( |
2488 | mod_timer(&priv->monitor_recover, | 2488 | IWL_ONE_HUNDRED_MSECS)); |
2489 | jiffies + msecs_to_jiffies( | 2489 | return 1; |
2490 | IWL_ONE_HUNDRED_MSECS)); | ||
2491 | return 1; | ||
2492 | } | ||
2493 | } | 2490 | } |
2494 | } else { | 2491 | } else { |
2495 | q->last_read_ptr = q->read_ptr; | 2492 | q->last_read_ptr = q->read_ptr; |