summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-agn.c
diff options
context:
space:
mode:
authorMohamed Abbas2009-06-19 22:52:41 +0200
committerJohn W. Linville2009-07-10 21:01:55 +0200
commit3354a0f6a3ced6957dfb9f689ad075cfa8fd272f (patch)
treeaf6bf64de6f9544ec82d0bd253976efe79f46a8c /drivers/net/wireless/iwlwifi/iwl-agn.c
parentath9k: differentiate quality reporting between legacy and HT configurations (diff)
downloadkernel-qcow2-linux-3354a0f6a3ced6957dfb9f689ad075cfa8fd272f.tar.gz
kernel-qcow2-linux-3354a0f6a3ced6957dfb9f689ad075cfa8fd272f.tar.xz
kernel-qcow2-linux-3354a0f6a3ced6957dfb9f689ad075cfa8fd272f.zip
iwlwifi: Check HW ready before prepare card.
Hardware may be ready for us to manage it without us trying to prepare it first. Check if this is the case. Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 6d1519e1f011..63cba8c0ad4d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1812,6 +1812,11 @@ static int iwl_prepare_card_hw(struct iwl_priv *priv)
IWL_DEBUG_INFO(priv, "iwl_prepare_card_hw enter \n");
+ ret = iwl_set_hw_ready(priv);
+ if (priv->hw_ready)
+ return ret;
+
+ /* If HW is not ready, prepare the conditions to check again */
iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG,
CSR_HW_IF_CONFIG_REG_PREPARE);
@@ -1819,6 +1824,7 @@ static int iwl_prepare_card_hw(struct iwl_priv *priv)
~CSR_HW_IF_CONFIG_REG_BIT_NIC_PREPARE_DONE,
CSR_HW_IF_CONFIG_REG_BIT_NIC_PREPARE_DONE, 150000);
+ /* HW should be ready by now, check again. */
if (ret != -ETIMEDOUT)
iwl_set_hw_ready(priv);