summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2013-07-24 10:19:06 +0300
committerJohannes Berg <johannes.berg@intel.com>2013-07-26 10:05:25 +0200
commit2997494fa66a1c94717d69c3cfae0a94462093c6 (patch)
tree748626df6f60b5f013cbc01b3b119b153129d9a5
parentbb963c4a43eb5127eb0bbfa16c7a6a209b0af5db (diff)
downloadop-kernel-dev-2997494fa66a1c94717d69c3cfae0a94462093c6.zip
op-kernel-dev-2997494fa66a1c94717d69c3cfae0a94462093c6.tar.gz
iwlwifi: pcie: reset the NIC before the bring up
This allows to clean all kinds of bad state it might be in. This solves situation where HW RFkill was switched while the NIC was offline. Until now, we relied on the firmware to do clean the interrupt, but new firmwares don't do that any more. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/trans.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
index 826c156..96cfcdd 100644
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
@@ -670,6 +670,11 @@ static int iwl_trans_pcie_start_hw(struct iwl_trans *trans)
return err;
}
+ /* Reset the entire device */
+ iwl_set_bit(trans, CSR_RESET, CSR_RESET_REG_FLAG_SW_RESET);
+
+ usleep_range(10, 15);
+
iwl_pcie_apm_init(trans);
/* From now on, the op_mode will be kept updated about RF kill state */
OpenPOWER on IntegriCloud