summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2012-01-04 16:57:09 +0200
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2012-02-02 13:40:25 -0800
commit8747bb4936c137bb93b91afd70eedd65069d26cd (patch)
treedc1e6cd767cebc7b3faf435e466b8e1c81c4d957
parenta591697730a3c416cd384bc199eb5dde622c4c78 (diff)
downloadlinux-8747bb4936c137bb93b91afd70eedd65069d26cd.tar.bz2
iwlwifi: separate the APM from the EEPROM
There is no link between the two. Ensure that the NIC is on outside the code of the EEPROM handling. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 9d9185ffc39c..f3bd6a3eec38 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1848,8 +1848,12 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
/*****************
* 4. Read EEPROM
*****************/
+ /* switch the NIC on before accessing the EEPROM */
+ iwl_apm_init(priv);
/* Read the EEPROM */
err = iwl_eeprom_init(priv, hw_rev);
+ /* Reset chip to save power until we load uCode during "up". */
+ iwl_apm_stop(priv);
if (err) {
IWL_ERR(priv, "Unable to init EEPROM\n");
goto out_free_trans;
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
index e27d9f55267b..ce214e0ab496 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.c
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
@@ -676,8 +676,6 @@ int iwl_eeprom_init(struct iwl_priv *priv, u32 hw_rev)
}
e = (__le16 *)shrd->eeprom;
- iwl_apm_init(priv);
-
ret = iwl_eeprom_verify_signature(trans(priv));
if (ret < 0) {
IWL_ERR(priv, "EEPROM not found, EEPROM_GP=0x%08x\n", gp);
@@ -758,8 +756,6 @@ done:
err:
if (ret)
iwl_eeprom_free(priv->shrd);
- /* Reset chip to save power until we load uCode during "up". */
- iwl_apm_stop(priv);
alloc_err:
return ret;
}