aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-09-23 18:24:22 -0400
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2010-10-14 12:45:58 -0400
commitde05ead8f8649788603afc470eb1c2ea2b8b1655 (patch)
tree1144f4196feef0a09bc1b0d6b60b6ac7db28d325 /drivers/net/wireless/iwlwifi
parentc23cc81a5e5c1d4486b662cedd0afcdf9145f154 (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/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c38
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c11
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};
512static 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
513static struct iwl_ht_params iwl6000_ht_params = { 535static 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;