diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2012-02-13 05:23:26 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-02-22 14:51:16 -0500 |
commit | 71e0c6c267595f406cf0e0699bacf10098e0f387 (patch) | |
tree | bdafad941116b3369a20bb2da5dd9adf30b95149 /drivers/net/wireless/iwlegacy | |
parent | 586e45e31e50a9d0dda16349640b433eef002477 (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.c | 35 |
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 | ||
5451 | static int | 5450 | static void |
5452 | il4965_set_hw_ready(struct il_priv *il) | 5451 | il4965_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 | ||
5473 | static int | 5469 | static void |
5474 | il4965_prepare_card_hw(struct il_priv *il) | 5470 | il4965_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 | ||