diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl3945-base.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index cc282aa2f43c..371abbf60eac 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -2509,13 +2509,8 @@ static void iwl3945_alive_start(struct iwl_priv *priv) | |||
2509 | /* After the ALIVE response, we can send commands to 3945 uCode */ | 2509 | /* After the ALIVE response, we can send commands to 3945 uCode */ |
2510 | set_bit(STATUS_ALIVE, &priv->status); | 2510 | set_bit(STATUS_ALIVE, &priv->status); |
2511 | 2511 | ||
2512 | if (priv->cfg->ops->lib->recover_from_tx_stall) { | 2512 | /* Enable watchdog to monitor the driver tx queues */ |
2513 | /* Enable timer to monitor the driver queues */ | 2513 | iwl_setup_watchdog(priv); |
2514 | mod_timer(&priv->monitor_recover, | ||
2515 | jiffies + | ||
2516 | msecs_to_jiffies( | ||
2517 | priv->cfg->base_params->monitor_recover_period)); | ||
2518 | } | ||
2519 | 2514 | ||
2520 | if (iwl_is_rfkill(priv)) | 2515 | if (iwl_is_rfkill(priv)) |
2521 | return; | 2516 | return; |
@@ -2572,8 +2567,7 @@ static void __iwl3945_down(struct iwl_priv *priv) | |||
2572 | 2567 | ||
2573 | /* Stop TX queues watchdog. We need to have STATUS_EXIT_PENDING bit set | 2568 | /* Stop TX queues watchdog. We need to have STATUS_EXIT_PENDING bit set |
2574 | * to prevent rearm timer */ | 2569 | * to prevent rearm timer */ |
2575 | if (priv->cfg->ops->lib->recover_from_tx_stall) | 2570 | del_timer_sync(&priv->watchdog); |
2576 | del_timer_sync(&priv->monitor_recover); | ||
2577 | 2571 | ||
2578 | /* Station information will now be cleared in device */ | 2572 | /* Station information will now be cleared in device */ |
2579 | iwl_clear_ucode_stations(priv, NULL); | 2573 | iwl_clear_ucode_stations(priv, NULL); |
@@ -3775,12 +3769,9 @@ static void iwl3945_setup_deferred_work(struct iwl_priv *priv) | |||
3775 | 3769 | ||
3776 | iwl3945_hw_setup_deferred_work(priv); | 3770 | iwl3945_hw_setup_deferred_work(priv); |
3777 | 3771 | ||
3778 | if (priv->cfg->ops->lib->recover_from_tx_stall) { | 3772 | init_timer(&priv->watchdog); |
3779 | init_timer(&priv->monitor_recover); | 3773 | priv->watchdog.data = (unsigned long)priv; |
3780 | priv->monitor_recover.data = (unsigned long)priv; | 3774 | priv->watchdog.function = iwl_bg_watchdog; |
3781 | priv->monitor_recover.function = | ||
3782 | priv->cfg->ops->lib->recover_from_tx_stall; | ||
3783 | } | ||
3784 | 3775 | ||
3785 | tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long)) | 3776 | tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long)) |
3786 | iwl3945_irq_tasklet, (unsigned long)priv); | 3777 | iwl3945_irq_tasklet, (unsigned long)priv); |