diff options
author | Ester Kummer <ester.kummer@intel.com> | 2008-05-05 23:05:14 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-05-14 16:29:48 -0400 |
commit | 3a1081e84b0008de8171a95f2c0fff8489af4300 (patch) | |
tree | bc19821cb8912d619c4c13815816bee93327a471 | |
parent | bc6f59bc9b2f494ca1b018622f1fbd25933bc920 (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.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 4 |
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); | |||
3892 | MODULE_PARM_DESC(qos_enable, "enable all QoS functionality"); | 3893 | MODULE_PARM_DESC(qos_enable, "enable all QoS functionality"); |
3893 | module_param_named(amsdu_size_8K, iwl4965_mod_params.amsdu_size_8K, int, 0444); | 3894 | module_param_named(amsdu_size_8K, iwl4965_mod_params.amsdu_size_8K, int, 0444); |
3894 | MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size"); | 3895 | MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size"); |
3895 | 3896 | module_param_named(fw_restart4965, iwl4965_mod_params.restart_fw, int, 0444); | |
3897 | MODULE_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); | |||
555 | MODULE_PARM_DESC(qos_enable50, "enable all 50XX QoS functionality"); | 556 | MODULE_PARM_DESC(qos_enable50, "enable all 50XX QoS functionality"); |
556 | module_param_named(amsdu_size_8K50, iwl50_mod_params.amsdu_size_8K, int, 0444); | 557 | module_param_named(amsdu_size_8K50, iwl50_mod_params.amsdu_size_8K, int, 0444); |
557 | MODULE_PARM_DESC(amsdu_size_8K50, "enable 8K amsdu size in 50XX series"); | 558 | MODULE_PARM_DESC(amsdu_size_8K50, "enable 8K amsdu size in 50XX series"); |
558 | 559 | module_param_named(fw_restart50, iwl50_mod_params.restart_fw, int, 0444); | |
559 | 560 | MODULE_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 | ||
154 | struct iwl_cfg { | 155 | struct 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 |