diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/dvm/main.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-drv.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-modparams.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mvm.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/ops.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/tx.c | 2 |
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, | |||
1478 | MODULE_PARM_DESC(antenna_coupling, | 1477 | MODULE_PARM_DESC(antenna_coupling, |
1479 | "specify antenna coupling in dB (default: 0 dB)"); | 1478 | "specify antenna coupling in dB (default: 0 dB)"); |
1480 | 1479 | ||
1481 | module_param_named(wd_disable, iwlwifi_mod_params.wd_disable, int, S_IRUGO); | ||
1482 | MODULE_PARM_DESC(wd_disable, | ||
1483 | "Disable stuck queue watchdog timer 0=system default, 1=disable (default: 1)"); | ||
1484 | |||
1485 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, S_IRUGO); | 1480 | module_param_named(nvm_file, iwlwifi_mod_params.nvm_file, charp, S_IRUGO); |
1486 | MODULE_PARM_DESC(nvm_file, "NVM file name"); | 1481 | MODULE_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 | */ |
125 | struct iwl_mvm_mod_params { | 126 | struct 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 | }; |
129 | extern struct iwl_mvm_mod_params iwlmvm_mod_params; | 131 | extern 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 | ||
94 | struct iwl_mvm_mod_params iwlmvm_mod_params = { | 94 | struct 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, | |||
102 | module_param_named(power_scheme, iwlmvm_mod_params.power_scheme, int, S_IRUGO); | 103 | module_param_named(power_scheme, iwlmvm_mod_params.power_scheme, int, S_IRUGO); |
103 | MODULE_PARM_DESC(power_scheme, | 104 | MODULE_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"); |
106 | module_param_named(tfd_q_hang_detect, iwlmvm_mod_params.tfd_q_hang_detect, | ||
107 | bool, S_IRUGO); | ||
108 | MODULE_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); |