aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/main.c6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-drv.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-modparams.h2
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mvm.h2
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/ops.c9
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/tx.c2
6 files changed, 10 insertions, 16 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c
index de43dd7e170a..a21400cd84ac 100644
--- a/drivers/net/wireless/iwlwifi/dvm/main.c
+++ b/drivers/net/wireless/iwlwifi/dvm/main.c
@@ -1228,11 +1228,7 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
1228 trans_cfg.no_reclaim_cmds = no_reclaim_cmds; 1228 trans_cfg.no_reclaim_cmds = no_reclaim_cmds;
1229 trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds); 1229 trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds);
1230 trans_cfg.rx_buf_size_8k = iwlwifi_mod_params.amsdu_size_8K; 1230 trans_cfg.rx_buf_size_8k = iwlwifi_mod_params.amsdu_size_8K;
1231 if (!iwlwifi_mod_params.wd_disable) 1231 trans_cfg.queue_watchdog_timeout = IWL_WATCHDOG_DISABLED;
1232 trans_cfg.queue_watchdog_timeout =
1233 priv->cfg->base_params->wd_timeout;
1234 else
1235 trans_cfg.queue_watchdog_timeout = IWL_WATCHDOG_DISABLED;
1236 trans_cfg.command_names = iwl_dvm_cmd_strings; 1232 trans_cfg.command_names = iwl_dvm_cmd_strings;
1237 trans_cfg.cmd_fifo = IWLAGN_CMD_FIFO_NUM; 1233 trans_cfg.cmd_fifo = IWLAGN_CMD_FIFO_NUM;
1238 1234
diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c
index e7c0df6db6ee..996e7f16adf9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/iwlwifi/iwl-drv.c
@@ -1367,7 +1367,6 @@ struct iwl_mod_params iwlwifi_mod_params = {
1367 .restart_fw = true, 1367 .restart_fw = true,
1368 .bt_coex_active = true, 1368 .bt_coex_active = true,
1369 .power_level = IWL_POWER_INDEX_1, 1369 .power_level = IWL_POWER_INDEX_1,
1370 .wd_disable = true,
1371 .d0i3_disable = true, 1370 .d0i3_disable = true,
1372#ifndef CONFIG_IWLWIFI_UAPSD 1371#ifndef CONFIG_IWLWIFI_UAPSD
1373 .uapsd_disable = true, 1372 .uapsd_disable = true,
@@ -1478,10 +1477,6 @@ module_param_named(antenna_coupling, iwlwifi_mod_params.ant_coupling,
1478MODULE_PARM_DESC(antenna_coupling, 1477MODULE_PARM_DESC(antenna_coupling,
1479 "specify antenna coupling in dB (default: 0 dB)"); 1478 "specify antenna coupling in dB (default: 0 dB)");
1480 1479
1481module_param_named(wd_disable, iwlwifi_mod_params.wd_disable, int, S_IRUGO);
1482MODULE_PARM_DESC(wd_disable,
1483 "Disable stuck queue watchdog timer 0=system default, 1=disable (default: 1)");
1484
1485module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, S_IRUGO); 1480module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, S_IRUGO);
1486MODULE_PARM_DESC(nvm_file, "NVM file name"); 1481MODULE_PARM_DESC(nvm_file, "NVM file name");
1487 1482
diff --git a/drivers/net/wireless/iwlwifi/iwl-modparams.h b/drivers/net/wireless/iwlwifi/iwl-modparams.h
index 2a8cf4b2445c..e8eabd21ccfe 100644
--- a/drivers/net/wireless/iwlwifi/iwl-modparams.h
+++ b/drivers/net/wireless/iwlwifi/iwl-modparams.h
@@ -96,7 +96,6 @@ enum iwl_disable_11n {
96 * use IWL_[DIS,EN]ABLE_HT_* constants 96 * use IWL_[DIS,EN]ABLE_HT_* constants
97 * @amsdu_size_8K: enable 8K amsdu size, default = 0 97 * @amsdu_size_8K: enable 8K amsdu size, default = 0
98 * @restart_fw: restart firmware, default = 1 98 * @restart_fw: restart firmware, default = 1
99 * @wd_disable: disable stuck queue check, default = 1
100 * @bt_coex_active: enable bt coex, default = true 99 * @bt_coex_active: enable bt coex, default = true
101 * @led_mode: system default, default = 0 100 * @led_mode: system default, default = 0
102 * @power_save: enable power save, default = false 101 * @power_save: enable power save, default = false
@@ -111,7 +110,6 @@ struct iwl_mod_params {
111 unsigned int disable_11n; 110 unsigned int disable_11n;
112 int amsdu_size_8K; 111 int amsdu_size_8K;
113 bool restart_fw; 112 bool restart_fw;
114 int wd_disable;
115 bool bt_coex_active; 113 bool bt_coex_active;
116 int led_mode; 114 int led_mode;
117 bool power_save; 115 bool power_save;
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
index ed097268a1bc..4a7620cb5775 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
@@ -119,11 +119,13 @@ extern const struct ieee80211_ops iwl_mvm_hw_ops;
119 * We will register to mac80211 to have testmode working. The NIC must not 119 * We will register to mac80211 to have testmode working. The NIC must not
120 * be up'ed after the INIT fw asserted. This is useful to be able to use 120 * be up'ed after the INIT fw asserted. This is useful to be able to use
121 * proprietary tools over testmode to debug the INIT fw. 121 * proprietary tools over testmode to debug the INIT fw.
122 * @tfd_q_hang_detect: enabled the detection of hung transmit queues
122 * @power_scheme: CAM(Continuous Active Mode)-1, BPS(Balanced Power 123 * @power_scheme: CAM(Continuous Active Mode)-1, BPS(Balanced Power
123 * Save)-2(default), LP(Low Power)-3 124 * Save)-2(default), LP(Low Power)-3
124 */ 125 */
125struct iwl_mvm_mod_params { 126struct iwl_mvm_mod_params {
126 bool init_dbg; 127 bool init_dbg;
128 bool tfd_q_hang_detect;
127 int power_scheme; 129 int power_scheme;
128}; 130};
129extern struct iwl_mvm_mod_params iwlmvm_mod_params; 131extern struct iwl_mvm_mod_params iwlmvm_mod_params;
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c
index b1dea6800b3b..f801824197e1 100644
--- a/drivers/net/wireless/iwlwifi/mvm/ops.c
+++ b/drivers/net/wireless/iwlwifi/mvm/ops.c
@@ -93,6 +93,7 @@ static const struct iwl_op_mode_ops iwl_mvm_ops;
93 93
94struct iwl_mvm_mod_params iwlmvm_mod_params = { 94struct iwl_mvm_mod_params iwlmvm_mod_params = {
95 .power_scheme = IWL_POWER_SCHEME_BPS, 95 .power_scheme = IWL_POWER_SCHEME_BPS,
96 .tfd_q_hang_detect = true
96 /* rest of fields are 0 by default */ 97 /* rest of fields are 0 by default */
97}; 98};
98 99
@@ -102,6 +103,10 @@ MODULE_PARM_DESC(init_dbg,
102module_param_named(power_scheme, iwlmvm_mod_params.power_scheme, int, S_IRUGO); 103module_param_named(power_scheme, iwlmvm_mod_params.power_scheme, int, S_IRUGO);
103MODULE_PARM_DESC(power_scheme, 104MODULE_PARM_DESC(power_scheme,
104 "power management scheme: 1-active, 2-balanced, 3-low power, default: 2"); 105 "power management scheme: 1-active, 2-balanced, 3-low power, default: 2");
106module_param_named(tfd_q_hang_detect, iwlmvm_mod_params.tfd_q_hang_detect,
107 bool, S_IRUGO);
108MODULE_PARM_DESC(tfd_q_hang_detect,
109 "TFD queues hang detection (default: true");
105 110
106/* 111/*
107 * module init and exit functions 112 * module init and exit functions
@@ -473,10 +478,8 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
473 if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_DW_BC_TABLE) 478 if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_DW_BC_TABLE)
474 trans_cfg.bc_table_dword = true; 479 trans_cfg.bc_table_dword = true;
475 480
476 if (!iwlwifi_mod_params.wd_disable) 481 if (iwlmvm_mod_params.tfd_q_hang_detect)
477 trans_cfg.queue_watchdog_timeout = cfg->base_params->wd_timeout; 482 trans_cfg.queue_watchdog_timeout = cfg->base_params->wd_timeout;
478 else
479 trans_cfg.queue_watchdog_timeout = IWL_WATCHDOG_DISABLED;
480 483
481 trans_cfg.command_names = iwl_mvm_cmd_strings; 484 trans_cfg.command_names = iwl_mvm_cmd_strings;
482 485
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index 59aefa43ea85..bb9dd3ecbcf5 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -1849,7 +1849,7 @@ int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb,
1849 1849
1850 /* start timer if queue currently empty */ 1850 /* start timer if queue currently empty */
1851 if (q->read_ptr == q->write_ptr) { 1851 if (q->read_ptr == q->write_ptr) {
1852 if (txq->need_update && trans_pcie->wd_timeout) 1852 if (trans_pcie->wd_timeout)
1853 mod_timer(&txq->stuck_timer, 1853 mod_timer(&txq->stuck_timer,
1854 jiffies + trans_pcie->wd_timeout); 1854 jiffies + trans_pcie->wd_timeout);
1855 IWL_DEBUG_RPM(trans, "Q: %d first tx - take ref\n", q->id); 1855 IWL_DEBUG_RPM(trans, "Q: %d first tx - take ref\n", q->id);