Browse Source

iwlwifi: mvm: don't stop the FW monitor too early

When the delay paramatere is provided, we need to stop
the collection only after the delay has elapsed.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Emmanuel Grumbach 10 years ago
parent
commit
145d90b6b3
2 changed files with 10 additions and 9 deletions
  1. 0 9
      drivers/net/wireless/iwlwifi/mvm/fw.c
  2. 10 0
      drivers/net/wireless/iwlwifi/mvm/ops.c

+ 0 - 9
drivers/net/wireless/iwlwifi/mvm/fw.c

@@ -494,15 +494,6 @@ int iwl_mvm_fw_dbg_collect_desc(struct iwl_mvm *mvm,
 
 
 	mvm->fw_dump_desc = desc;
 	mvm->fw_dump_desc = desc;
 
 
-	/* stop recording */
-	if (mvm->cfg->device_family == IWL_DEVICE_FAMILY_7000) {
-		iwl_set_bits_prph(mvm->trans, MON_BUFF_SAMPLE_CTL, 0x100);
-	} else {
-		iwl_write_prph(mvm->trans, DBGC_IN_SAMPLE, 0);
-		/* wait before we collect the data till the DBGC stop */
-		udelay(100);
-	}
-
 	queue_delayed_work(system_wq, &mvm->fw_dump_wk, delay);
 	queue_delayed_work(system_wq, &mvm->fw_dump_wk, delay);
 
 
 	return 0;
 	return 0;

+ 10 - 0
drivers/net/wireless/iwlwifi/mvm/ops.c

@@ -865,6 +865,16 @@ static void iwl_mvm_fw_error_dump_wk(struct work_struct *work)
 		return;
 		return;
 
 
 	mutex_lock(&mvm->mutex);
 	mutex_lock(&mvm->mutex);
+
+	/* stop recording */
+	if (mvm->cfg->device_family == IWL_DEVICE_FAMILY_7000) {
+		iwl_set_bits_prph(mvm->trans, MON_BUFF_SAMPLE_CTL, 0x100);
+	} else {
+		iwl_write_prph(mvm->trans, DBGC_IN_SAMPLE, 0);
+		/* wait before we collect the data till the DBGC stop */
+		udelay(100);
+	}
+
 	iwl_mvm_fw_error_dump(mvm);
 	iwl_mvm_fw_error_dump(mvm);
 
 
 	/* start recording again if the firmware is not crashed */
 	/* start recording again if the firmware is not crashed */