浏览代码

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>
Emmanuel Grumbach 12 年之前
父节点
当前提交
2997494fa6
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      drivers/net/wireless/iwlwifi/pcie/trans.c

+ 5 - 0
drivers/net/wireless/iwlwifi/pcie/trans.c

@@ -670,6 +670,11 @@ static int iwl_trans_pcie_start_hw(struct iwl_trans *trans)
 		return err;
 		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);
 	iwl_pcie_apm_init(trans);
 
 
 	/* From now on, the op_mode will be kept updated about RF kill state */
 	/* From now on, the op_mode will be kept updated about RF kill state */