Commit a06875a7 authored by Shahar S Matityahu's avatar Shahar S Matityahu Committed by Kalle Valo
Browse files

iwlwifi: wrt: add rt status and num of rx/tx fifos to dump



Add the rt status of the last assert or 0 if the dump collection was
not initiated by an assert.  Add the number of rx and tx fifos in use.
These fields are added to dump info lst file.

Signed-off-by: default avatarShahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 35739348
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -828,6 +828,7 @@ _iwl_fw_error_dump(struct iwl_fw_runtime *fwrt,
			sizeof(dump_info->dev_human_readable) - 1);
		strncpy(dump_info->bus_human_readable, fwrt->dev->bus->name,
			sizeof(dump_info->bus_human_readable) - 1);
		dump_info->rt_status = cpu_to_le32(fwrt->dump.rt_status);

		dump_data = iwl_fw_error_next_data(dump_data);
	}
+1 −0
Original line number Diff line number Diff line
@@ -102,6 +102,7 @@ static inline void iwl_fw_free_dump_desc(struct iwl_fw_runtime *fwrt)
	if (fwrt->dump.desc != &iwl_dump_desc_assert)
		kfree(fwrt->dump.desc);
	fwrt->dump.desc = NULL;
	fwrt->dump.rt_status = 0;
}

void iwl_fw_error_dump(struct iwl_fw_runtime *fwrt);
+3 −0
Original line number Diff line number Diff line
@@ -187,6 +187,8 @@ enum iwl_fw_error_dump_family {
 * @fw_human_readable: human readable FW version
 * @dev_human_readable: name of the device
 * @bus_human_readable: name of the bus used
 * @rt_status: the error_id/rt_status that that triggered the latest dump
 *	if the dump collection was not initiated by an assert, the value is 0
 */
struct iwl_fw_error_dump_info {
	__le32 device_family;
@@ -194,6 +196,7 @@ struct iwl_fw_error_dump_info {
	u8 fw_human_readable[FW_VER_HUMAN_READABLE_SZ];
	u8 dev_human_readable[64];
	u8 bus_human_readable[8];
	__le32 rt_status;
} __packed;

/**
+1 −0
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ struct iwl_fw_runtime {
		u32 *d3_debug_data;
		struct iwl_fw_ini_active_regs active_regs[IWL_FW_INI_MAX_REGION_ID];
		struct iwl_fw_ini_active_triggers active_trigs[IWL_FW_TRIGGER_ID_NUM];
		u32 rt_status;
	} dump;
#ifdef CONFIG_IWLWIFI_DEBUGFS
	struct {
+3 −0
Original line number Diff line number Diff line
@@ -540,6 +540,9 @@ static void iwl_mvm_dump_lmac_error_log(struct iwl_mvm *mvm, u32 base)

	iwl_trans_read_mem_bytes(trans, base, &table, sizeof(table));

	if (table.valid)
		mvm->fwrt.dump.rt_status = table.error_id;

	if (ERROR_START_OFFSET <= table.valid * ERROR_ELEM_SIZE) {
		IWL_ERR(trans, "Start IWL Error Log Dump:\n");
		IWL_ERR(trans, "Status: 0x%08lX, count: %d\n",