Commit 300d0834 authored by Wey-Yi Guy's avatar Wey-Yi Guy

iwlagn: add module parameter to disable stuck queue watchdog timer

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: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent 54e9c409
...@@ -3820,6 +3820,10 @@ MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])"); ...@@ -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_param_named(ack_check, iwlagn_mod_params.ack_check, bool, S_IRUGO);
MODULE_PARM_DESC(ack_check, "Check ack health (default: 0 [disabled])"); 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 * set bt_coex_active to true, uCode will do kill/defer
* every time the priority line is asserted (BT is sending signals on the * every time the priority line is asserted (BT is sending signals on the
......
...@@ -1853,7 +1853,7 @@ void iwl_setup_watchdog(struct iwl_priv *priv) ...@@ -1853,7 +1853,7 @@ void iwl_setup_watchdog(struct iwl_priv *priv)
{ {
unsigned int timeout = priv->cfg->base_params->wd_timeout; unsigned int timeout = priv->cfg->base_params->wd_timeout;
if (timeout) if (timeout && !iwlagn_mod_params.wd_disable)
mod_timer(&priv->watchdog, mod_timer(&priv->watchdog,
jiffies + msecs_to_jiffies(IWL_WD_TICK(timeout))); jiffies + msecs_to_jiffies(IWL_WD_TICK(timeout)));
else else
......
...@@ -160,6 +160,7 @@ struct iwl_mod_params { ...@@ -160,6 +160,7 @@ struct iwl_mod_params {
int restart_fw; /* def: 1 = restart firmware */ int restart_fw; /* def: 1 = restart firmware */
bool plcp_check; /* def: true = enable plcp health check */ bool plcp_check; /* def: true = enable plcp health check */
bool ack_check; /* def: false = disable ack 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 */ bool bt_coex_active; /* def: true = enable bt coex */
int led_mode; /* def: 0 = system default */ int led_mode; /* def: 0 = system default */
bool no_sleep_autoadjust; /* def: true = disable autoadjust */ bool no_sleep_autoadjust; /* def: true = disable autoadjust */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment