aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 32ab4a0215a0..d4075476670a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2654,13 +2654,8 @@ static void iwl_alive_start(struct iwl_priv *priv)
2654 /* After the ALIVE response, we can send host commands to the uCode */ 2654 /* After the ALIVE response, we can send host commands to the uCode */
2655 set_bit(STATUS_ALIVE, &priv->status); 2655 set_bit(STATUS_ALIVE, &priv->status);
2656 2656
2657 if (priv->cfg->ops->lib->recover_from_tx_stall) { 2657 /* Enable watchdog to monitor the driver tx queues */
2658 /* Enable timer to monitor the driver queues */ 2658 iwl_setup_watchdog(priv);
2659 mod_timer(&priv->monitor_recover,
2660 jiffies +
2661 msecs_to_jiffies(
2662 priv->cfg->base_params->monitor_recover_period));
2663 }
2664 2659
2665 if (iwl_is_rfkill(priv)) 2660 if (iwl_is_rfkill(priv))
2666 return; 2661 return;
@@ -2755,8 +2750,7 @@ static void __iwl_down(struct iwl_priv *priv)
2755 2750
2756 /* Stop TX queues watchdog. We need to have STATUS_EXIT_PENDING bit set 2751 /* Stop TX queues watchdog. We need to have STATUS_EXIT_PENDING bit set
2757 * to prevent rearm timer */ 2752 * to prevent rearm timer */
2758 if (priv->cfg->ops->lib->recover_from_tx_stall) 2753 del_timer_sync(&priv->watchdog);
2759 del_timer_sync(&priv->monitor_recover);
2760 2754
2761 iwl_clear_ucode_stations(priv, NULL); 2755 iwl_clear_ucode_stations(priv, NULL);
2762 iwl_dealloc_bcast_stations(priv); 2756 iwl_dealloc_bcast_stations(priv);
@@ -3742,12 +3736,9 @@ static void iwl_setup_deferred_work(struct iwl_priv *priv)
3742 priv->ucode_trace.data = (unsigned long)priv; 3736 priv->ucode_trace.data = (unsigned long)priv;
3743 priv->ucode_trace.function = iwl_bg_ucode_trace; 3737 priv->ucode_trace.function = iwl_bg_ucode_trace;
3744 3738
3745 if (priv->cfg->ops->lib->recover_from_tx_stall) { 3739 init_timer(&priv->watchdog);
3746 init_timer(&priv->monitor_recover); 3740 priv->watchdog.data = (unsigned long)priv;
3747 priv->monitor_recover.data = (unsigned long)priv; 3741 priv->watchdog.function = iwl_bg_watchdog;
3748 priv->monitor_recover.function =
3749 priv->cfg->ops->lib->recover_from_tx_stall;
3750 }
3751 3742
3752 if (!priv->cfg->base_params->use_isr_legacy) 3743 if (!priv->cfg->base_params->use_isr_legacy)
3753 tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long)) 3744 tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long))