aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEster Kummer <ester.kummer@intel.com>2008-05-05 23:05:14 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-05-14 16:29:48 -0400
commit3a1081e84b0008de8171a95f2c0fff8489af4300 (patch)
treebc19821cb8912d619c4c13815816bee93327a471
parentbc6f59bc9b2f494ca1b018622f1fbd25933bc920 (diff)
iwlwifi: adding parameter of fw_restart
This patch adds a module parameter of fw_restart which determine if the uCode will be restarted or not in case of error. Signed-off-by: Ester Kummer <ester.kummer@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c4
4 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 0b4413830507..b7036e011457 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -50,6 +50,7 @@ static struct iwl_mod_params iwl4965_mod_params = {
50 .num_of_queues = IWL49_NUM_QUEUES, 50 .num_of_queues = IWL49_NUM_QUEUES,
51 .enable_qos = 1, 51 .enable_qos = 1,
52 .amsdu_size_8K = 1, 52 .amsdu_size_8K = 1,
53 .restart_fw = 1,
53 /* the rest are 0 by default */ 54 /* the rest are 0 by default */
54}; 55};
55 56
@@ -3892,4 +3893,5 @@ module_param_named(qos_enable, iwl4965_mod_params.enable_qos, int, 0444);
3892MODULE_PARM_DESC(qos_enable, "enable all QoS functionality"); 3893MODULE_PARM_DESC(qos_enable, "enable all QoS functionality");
3893module_param_named(amsdu_size_8K, iwl4965_mod_params.amsdu_size_8K, int, 0444); 3894module_param_named(amsdu_size_8K, iwl4965_mod_params.amsdu_size_8K, int, 0444);
3894MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size"); 3895MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size");
3895 3896module_param_named(fw_restart4965, iwl4965_mod_params.restart_fw, int, 0444);
3897MODULE_PARM_DESC(fw_restart4965, "restart firmware in case of error");
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 43b4d20467de..b5e28b811796 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -510,6 +510,7 @@ static struct iwl_mod_params iwl50_mod_params = {
510 .num_of_queues = IWL50_NUM_QUEUES, 510 .num_of_queues = IWL50_NUM_QUEUES,
511 .enable_qos = 1, 511 .enable_qos = 1,
512 .amsdu_size_8K = 1, 512 .amsdu_size_8K = 1,
513 .restart_fw = 1,
513 /* the rest are 0 by default */ 514 /* the rest are 0 by default */
514}; 515};
515 516
@@ -555,5 +556,5 @@ module_param_named(qos_enable50, iwl50_mod_params.enable_qos, int, 0444);
555MODULE_PARM_DESC(qos_enable50, "enable all 50XX QoS functionality"); 556MODULE_PARM_DESC(qos_enable50, "enable all 50XX QoS functionality");
556module_param_named(amsdu_size_8K50, iwl50_mod_params.amsdu_size_8K, int, 0444); 557module_param_named(amsdu_size_8K50, iwl50_mod_params.amsdu_size_8K, int, 0444);
557MODULE_PARM_DESC(amsdu_size_8K50, "enable 8K amsdu size in 50XX series"); 558MODULE_PARM_DESC(amsdu_size_8K50, "enable 8K amsdu size in 50XX series");
558 559module_param_named(fw_restart50, iwl50_mod_params.restart_fw, int, 0444);
559 560MODULE_PARM_DESC(fw_restart50, "restart firmware in case of error");
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 83fe0cbf6aee..e139c8ffa9a2 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -149,6 +149,7 @@ struct iwl_mod_params {
149 int enable_qos; /* def: 1 = use quality of service */ 149 int enable_qos; /* def: 1 = use quality of service */
150 int amsdu_size_8K; /* def: 1 = enable 8K amsdu size */ 150 int amsdu_size_8K; /* def: 1 = enable 8K amsdu size */
151 int antenna; /* def: 0 = both antennas (use diversity) */ 151 int antenna; /* def: 0 = both antennas (use diversity) */
152 int restart_fw; /* def: 1 = restart firmware */
152}; 153};
153 154
154struct iwl_cfg { 155struct iwl_cfg {
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index 7708b19ca0cc..55ca752ae9e6 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -3569,7 +3569,8 @@ static void iwl4965_irq_handle_error(struct iwl_priv *priv)
3569 sizeof(priv->recovery_rxon)); 3569 sizeof(priv->recovery_rxon));
3570 priv->error_recovering = 1; 3570 priv->error_recovering = 1;
3571 } 3571 }
3572 queue_work(priv->workqueue, &priv->restart); 3572 if (priv->cfg->mod_params->restart_fw)
3573 queue_work(priv->workqueue, &priv->restart);
3573 } 3574 }
3574} 3575}
3575 3576
@@ -6847,6 +6848,7 @@ static int __init iwl4965_init(void)
6847 6848
6848 return ret; 6849 return ret;
6849 6850
6851
6850#ifdef CONFIG_IWLWIFI_DEBUG 6852#ifdef CONFIG_IWLWIFI_DEBUG
6851 pci_unregister_driver(&iwl_driver); 6853 pci_unregister_driver(&iwl_driver);
6852#endif 6854#endif