iwlagn: add module parameter to disable stuck queue watchdog timer
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Sat, 25 Jun 2011 16:17:41 +0000 (09:17 -0700)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Fri, 1 Jul 2011 14:57:22 +0000 (07:57 -0700)
Add the parameter to disable stuck queue watchdog timer, different platforms
might have different timing. Provide the option to disable the timer to prevent
un-necessary firmware reload.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.h

index e2f6b2a..58789e8 100644 (file)
@@ -3820,6 +3820,10 @@ MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])");
 module_param_named(ack_check, iwlagn_mod_params.ack_check, bool, S_IRUGO);
 MODULE_PARM_DESC(ack_check, "Check ack health (default: 0 [disabled])");
 
+module_param_named(wd_disable, iwlagn_mod_params.wd_disable, bool, S_IRUGO);
+MODULE_PARM_DESC(wd_disable,
+               "Disable stuck queue watchdog timer (default: 0 [enabled])");
+
 /*
  * set bt_coex_active to true, uCode will do kill/defer
  * every time the priority line is asserted (BT is sending signals on the
index 7f16d12..c5fa232 100644 (file)
@@ -1853,7 +1853,7 @@ void iwl_setup_watchdog(struct iwl_priv *priv)
 {
        unsigned int timeout = priv->cfg->base_params->wd_timeout;
 
-       if (timeout)
+       if (timeout && !iwlagn_mod_params.wd_disable)
                mod_timer(&priv->watchdog,
                          jiffies + msecs_to_jiffies(IWL_WD_TICK(timeout)));
        else
index f881678..a311cf8 100644 (file)
@@ -160,6 +160,7 @@ struct iwl_mod_params {
        int restart_fw;         /* def: 1 = restart firmware */
        bool plcp_check;        /* def: true = enable plcp health check */
        bool ack_check;         /* def: false = disable ack health check */
+       bool wd_disable;        /* def: false = enable stuck queue check */
        bool bt_coex_active;    /* def: true = enable bt coex */
        int led_mode;           /* def: 0 = system default */
        bool no_sleep_autoadjust; /* def: true = disable autoadjust */