aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2011-01-14 20:48:06 -0500
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2011-01-31 16:17:28 -0500
commit10480b056662dc9595850598f0bbc5a16a4884f4 (patch)
tree5cb9859f901cc2aae2829e2a8db73a9ee50aaecc /drivers/net/wireless/iwlwifi
parent78d12c237ca2e32ac6570b161d2137b5288c5511 (diff)
iwlwifi: check ucode loading error and restart
Driver check alive message from ucode, if it is not ok, then need to restart the loading process. instead of checking multiple places for failure, only need to check in once place when receive alive message from uCode. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-ucode.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c15
3 files changed, 6 insertions, 25 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 7c14eb31d954..ace0b98d91ae 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -251,14 +251,6 @@ static int iwl4965_set_ucode_ptrs(struct iwl_priv *priv)
251*/ 251*/
252static void iwl4965_init_alive_start(struct iwl_priv *priv) 252static void iwl4965_init_alive_start(struct iwl_priv *priv)
253{ 253{
254 /* Check alive response for "valid" sign from uCode */
255 if (priv->card_alive_init.is_valid != UCODE_VALID_OK) {
256 /* We had an error bringing up the hardware, so take it
257 * all the way back down so we can try again */
258 IWL_DEBUG_INFO(priv, "Initialize Alive failed.\n");
259 goto restart;
260 }
261
262 /* Bootstrap uCode has loaded initialize uCode ... verify inst image. 254 /* Bootstrap uCode has loaded initialize uCode ... verify inst image.
263 * This is a paranoid check, because we would not have gotten the 255 * This is a paranoid check, because we would not have gotten the
264 * "initialize" alive if code weren't properly loaded. */ 256 * "initialize" alive if code weren't properly loaded. */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c b/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c
index 24dabcd2a36c..d807e5e2b718 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-ucode.c
@@ -308,14 +308,6 @@ void iwlagn_init_alive_start(struct iwl_priv *priv)
308{ 308{
309 int ret = 0; 309 int ret = 0;
310 310
311 /* Check alive response for "valid" sign from uCode */
312 if (priv->card_alive_init.is_valid != UCODE_VALID_OK) {
313 /* We had an error bringing up the hardware, so take it
314 * all the way back down so we can try again */
315 IWL_DEBUG_INFO(priv, "Initialize Alive failed.\n");
316 goto restart;
317 }
318
319 /* initialize uCode was loaded... verify inst image. 311 /* initialize uCode was loaded... verify inst image.
320 * This is a paranoid check, because we would not have gotten the 312 * This is a paranoid check, because we would not have gotten the
321 * "initialize" alive if code weren't properly loaded. */ 313 * "initialize" alive if code weren't properly loaded. */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 646ccb2430b4..3e586d3c7d0f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -462,8 +462,12 @@ static void iwl_rx_reply_alive(struct iwl_priv *priv,
462 if (palive->is_valid == UCODE_VALID_OK) 462 if (palive->is_valid == UCODE_VALID_OK)
463 queue_delayed_work(priv->workqueue, pwork, 463 queue_delayed_work(priv->workqueue, pwork,
464 msecs_to_jiffies(5)); 464 msecs_to_jiffies(5));
465 else 465 else {
466 IWL_WARN(priv, "uCode did not respond OK.\n"); 466 IWL_WARN(priv, "%s uCode did not respond OK.\n",
467 (palive->ver_subtype == INITIALIZE_SUBTYPE) ?
468 "init" : "runtime");
469 queue_work(priv->workqueue, &priv->restart);
470 }
467} 471}
468 472
469static void iwl_bg_beacon_update(struct work_struct *work) 473static void iwl_bg_beacon_update(struct work_struct *work)
@@ -2648,13 +2652,6 @@ static void iwl_alive_start(struct iwl_priv *priv)
2648 2652
2649 IWL_DEBUG_INFO(priv, "Runtime Alive received.\n"); 2653 IWL_DEBUG_INFO(priv, "Runtime Alive received.\n");
2650 2654
2651 if (priv->card_alive.is_valid != UCODE_VALID_OK) {
2652 /* We had an error bringing up the hardware, so take it
2653 * all the way back down so we can try again */
2654 IWL_DEBUG_INFO(priv, "Alive failed.\n");
2655 goto restart;
2656 }
2657
2658 /* Initialize uCode has loaded Runtime uCode ... verify inst image. 2655 /* Initialize uCode has loaded Runtime uCode ... verify inst image.
2659 * This is a paranoid check, because we would not have gotten the 2656 * This is a paranoid check, because we would not have gotten the
2660 * "runtime" alive if code weren't properly loaded. */ 2657 * "runtime" alive if code weren't properly loaded. */