aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlegacy
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2012-02-13 05:23:26 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-02-22 14:51:16 -0500
commit71e0c6c267595f406cf0e0699bacf10098e0f387 (patch)
treebdafad941116b3369a20bb2da5dd9adf30b95149 /drivers/net/wireless/iwlegacy
parent586e45e31e50a9d0dda16349640b433eef002477 (diff)
iwlegacy: small il4965_set_hw_ready cleanup
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlegacy')
-rw-r--r--drivers/net/wireless/iwlegacy/4965-mac.c35
1 files changed, 14 insertions, 21 deletions
diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
index 5ebf7615808d..24a3bbc23eb8 100644
--- a/drivers/net/wireless/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/iwlegacy/4965-mac.c
@@ -5446,40 +5446,36 @@ il4965_down(struct il_priv *il)
5446 il4965_cancel_deferred_work(il); 5446 il4965_cancel_deferred_work(il);
5447} 5447}
5448 5448
5449#define HW_READY_TIMEOUT (50)
5450 5449
5451static int 5450static void
5452il4965_set_hw_ready(struct il_priv *il) 5451il4965_set_hw_ready(struct il_priv *il)
5453{ 5452{
5454 int ret = 0; 5453 int ret;
5455 5454
5456 il_set_bit(il, CSR_HW_IF_CONFIG_REG, 5455 il_set_bit(il, CSR_HW_IF_CONFIG_REG,
5457 CSR_HW_IF_CONFIG_REG_BIT_NIC_READY); 5456 CSR_HW_IF_CONFIG_REG_BIT_NIC_READY);
5458 5457
5459 /* See if we got it */ 5458 /* See if we got it */
5460 ret = 5459 ret = _il_poll_bit(il, CSR_HW_IF_CONFIG_REG,
5461 _il_poll_bit(il, CSR_HW_IF_CONFIG_REG, 5460 CSR_HW_IF_CONFIG_REG_BIT_NIC_READY,
5462 CSR_HW_IF_CONFIG_REG_BIT_NIC_READY, 5461 CSR_HW_IF_CONFIG_REG_BIT_NIC_READY,
5463 CSR_HW_IF_CONFIG_REG_BIT_NIC_READY, HW_READY_TIMEOUT); 5462 100);
5464 if (ret != -ETIMEDOUT) 5463 if (ret >= 0)
5465 il->hw_ready = true; 5464 il->hw_ready = true;
5466 else
5467 il->hw_ready = false;
5468 5465
5469 D_INFO("hardware %s\n", (il->hw_ready == 1) ? "ready" : "not ready"); 5466 D_INFO("hardware %s ready\n", (il->hw_ready) ? "" : "not");
5470 return ret;
5471} 5467}
5472 5468
5473static int 5469static void
5474il4965_prepare_card_hw(struct il_priv *il) 5470il4965_prepare_card_hw(struct il_priv *il)
5475{ 5471{
5476 int ret = 0; 5472 int ret;
5477 5473
5478 D_INFO("il4965_prepare_card_hw enter\n"); 5474 il->hw_ready = false;
5479 5475
5480 ret = il4965_set_hw_ready(il); 5476 il4965_set_hw_ready(il);
5481 if (il->hw_ready) 5477 if (il->hw_ready)
5482 return ret; 5478 return;
5483 5479
5484 /* If HW is not ready, prepare the conditions to check again */ 5480 /* If HW is not ready, prepare the conditions to check again */
5485 il_set_bit(il, CSR_HW_IF_CONFIG_REG, CSR_HW_IF_CONFIG_REG_PREPARE); 5481 il_set_bit(il, CSR_HW_IF_CONFIG_REG, CSR_HW_IF_CONFIG_REG_PREPARE);
@@ -5492,8 +5488,6 @@ il4965_prepare_card_hw(struct il_priv *il)
5492 /* HW should be ready by now, check again. */ 5488 /* HW should be ready by now, check again. */
5493 if (ret != -ETIMEDOUT) 5489 if (ret != -ETIMEDOUT)
5494 il4965_set_hw_ready(il); 5490 il4965_set_hw_ready(il);
5495
5496 return ret;
5497} 5491}
5498 5492
5499#define MAX_HW_RESTARTS 5 5493#define MAX_HW_RESTARTS 5
@@ -5521,9 +5515,8 @@ __il4965_up(struct il_priv *il)
5521 } 5515 }
5522 5516
5523 il4965_prepare_card_hw(il); 5517 il4965_prepare_card_hw(il);
5524
5525 if (!il->hw_ready) { 5518 if (!il->hw_ready) {
5526 IL_WARN("Exit HW not ready\n"); 5519 IL_ERR("HW not ready\n");
5527 return -EIO; 5520 return -EIO;
5528 } 5521 }
5529 5522