Browse Source

iwlwifi: fix "MAC in deep sleep" error

This patch fixes the misue of CSR_GP_CNTRL with CSR_RESET address
in polling the CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY bit in
iwl4965_apm_reset(). This causes "MAC in deep sleep" error sometimes.
The patch also fixes the timeout value and the iwl_poll_bit() return
value check.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Zhu, Yi 16 years ago
parent
commit
42802d71dd
1 changed files with 3 additions and 3 deletions
  1. 3 3
      drivers/net/wireless/iwlwifi/iwl-4965.c

+ 3 - 3
drivers/net/wireless/iwlwifi/iwl-4965.c

@@ -482,11 +482,11 @@ static int iwl4965_apm_reset(struct iwl_priv *priv)
 
 
 	iwl_set_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE);
 	iwl_set_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE);
 
 
-	ret = iwl_poll_bit(priv, CSR_RESET,
+	ret = iwl_poll_bit(priv, CSR_GP_CNTRL,
 			  CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY,
 			  CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY,
-			  CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY, 25);
+			  CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY, 25000);
 
 
-	if (ret)
+	if (ret < 0)
 		goto out;
 		goto out;
 
 
 	udelay(10);
 	udelay(10);