diff options
Diffstat (limited to 'drivers/net/wireless/intel')
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c index ee8f152e7606..be57b8391850 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c @@ -586,6 +586,23 @@ static void iwl_mvm_dump_lmac_error_log(struct iwl_mvm *mvm, u8 lmac_num)  	IWL_ERR(mvm, "0x%08X | flow_handler\n", table.flow_handler);  } +static void iwl_mvm_dump_iml_error_log(struct iwl_mvm *mvm) +{ +	struct iwl_trans *trans = mvm->trans; +	u32 error; + +	error = iwl_read_umac_prph(trans, UMAG_SB_CPU_2_STATUS); + +	IWL_ERR(trans, "IML/ROM dump:\n"); + +	if (error & 0xFFFF0000) +		IWL_ERR(trans, "IML/ROM SYSASSERT:\n"); + +	IWL_ERR(mvm, "0x%08X | IML/ROM error/state\n", error); +	IWL_ERR(mvm, "0x%08X | IML/ROM data1\n", +		iwl_read_umac_prph(trans, UMAG_SB_CPU_1_STATUS)); +} +  void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm)  {  	if (!test_bit(STATUS_DEVICE_ENABLED, &mvm->trans->status)) { @@ -601,6 +618,9 @@ void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm)  	iwl_mvm_dump_umac_error_log(mvm); +	if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) +		iwl_mvm_dump_iml_error_log(mvm); +  	iwl_fw_error_print_fseq_regs(&mvm->fwrt);  }  | 
