aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/mvm/utils.c
diff options
context:
space:
mode:
authorShahar S Matityahu <shahar.s.matityahu@intel.com>2018-04-24 06:35:59 -0400
committerLuca Coelho <luciano.coelho@intel.com>2019-02-14 04:29:45 -0500
commit22463857a16b43719e9845b47f6992d13376b2e0 (patch)
tree3fe8d9bcdbbc14a1e8c25bb5242ac419b50bb63d /drivers/net/wireless/intel/iwlwifi/mvm/utils.c
parented714460a0ecd1d382a4cda1247fd6eb2666de28 (diff)
iwlwifi: receive umac and lmac error table addresses from TLVs
TLV 54 holds umac debug related addresses. TLV 55 holds lmac debug related addresses. These TLVs aim to replace the alive notification data in the future. Parse and keep error table addresses received from the TLVs for both lmac and umac and use these addresses instead of the pointer received from alive notification. The feature supports only unified image. Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/utils.c')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/utils.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c
index 4a18997fb48a..4649327abb45 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c
@@ -457,12 +457,14 @@ static void iwl_mvm_dump_umac_error_log(struct iwl_mvm *mvm)
457{ 457{
458 struct iwl_trans *trans = mvm->trans; 458 struct iwl_trans *trans = mvm->trans;
459 struct iwl_umac_error_event_table table; 459 struct iwl_umac_error_event_table table;
460 u32 base = mvm->trans->umac_error_event_table;
460 461
461 if (!mvm->support_umac_log) 462 if (!mvm->support_umac_log &&
463 !(mvm->trans->error_event_table_tlv_status &
464 IWL_ERROR_EVENT_TABLE_UMAC))
462 return; 465 return;
463 466
464 iwl_trans_read_mem_bytes(trans, mvm->umac_error_event_table, &table, 467 iwl_trans_read_mem_bytes(trans, base, &table, sizeof(table));
465 sizeof(table));
466 468
467 if (table.valid) 469 if (table.valid)
468 mvm->fwrt.dump.umac_err_id = table.error_id; 470 mvm->fwrt.dump.umac_err_id = table.error_id;
@@ -494,7 +496,7 @@ static void iwl_mvm_dump_lmac_error_log(struct iwl_mvm *mvm, u8 lmac_num)
494{ 496{
495 struct iwl_trans *trans = mvm->trans; 497 struct iwl_trans *trans = mvm->trans;
496 struct iwl_error_event_table table; 498 struct iwl_error_event_table table;
497 u32 val, base = mvm->error_event_table[lmac_num]; 499 u32 val, base = mvm->trans->lmac_error_event_table[lmac_num];
498 500
499 if (mvm->fwrt.cur_fw_img == IWL_UCODE_INIT) { 501 if (mvm->fwrt.cur_fw_img == IWL_UCODE_INIT) {
500 if (!base) 502 if (!base)
@@ -590,7 +592,7 @@ void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm)
590 592
591 iwl_mvm_dump_lmac_error_log(mvm, 0); 593 iwl_mvm_dump_lmac_error_log(mvm, 0);
592 594
593 if (mvm->error_event_table[1]) 595 if (mvm->trans->lmac_error_event_table[1])
594 iwl_mvm_dump_lmac_error_log(mvm, 1); 596 iwl_mvm_dump_lmac_error_log(mvm, 1);
595 597
596 iwl_mvm_dump_umac_error_log(mvm); 598 iwl_mvm_dump_umac_error_log(mvm);