diff options
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/utils.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c index 2440248c8e69..76866b9e5686 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c | |||
@@ -491,98 +491,12 @@ static void iwl_mvm_dump_umac_error_log(struct iwl_mvm *mvm) | |||
491 | IWL_ERR(mvm, "0x%08X | isr status reg\n", table.nic_isr_pref); | 491 | IWL_ERR(mvm, "0x%08X | isr status reg\n", table.nic_isr_pref); |
492 | } | 492 | } |
493 | 493 | ||
494 | static void iwl_mvm_dump_nic_error_log_old(struct iwl_mvm *mvm) | ||
495 | { | ||
496 | struct iwl_trans *trans = mvm->trans; | ||
497 | struct iwl_error_event_table_v1 table; | ||
498 | u32 base; | ||
499 | |||
500 | base = mvm->error_event_table; | ||
501 | if (mvm->cur_ucode == IWL_UCODE_INIT) { | ||
502 | if (!base) | ||
503 | base = mvm->fw->init_errlog_ptr; | ||
504 | } else { | ||
505 | if (!base) | ||
506 | base = mvm->fw->inst_errlog_ptr; | ||
507 | } | ||
508 | |||
509 | if (base < 0x800000) { | ||
510 | IWL_ERR(mvm, | ||
511 | "Not valid error log pointer 0x%08X for %s uCode\n", | ||
512 | base, | ||
513 | (mvm->cur_ucode == IWL_UCODE_INIT) | ||
514 | ? "Init" : "RT"); | ||
515 | return; | ||
516 | } | ||
517 | |||
518 | iwl_trans_read_mem_bytes(trans, base, &table, sizeof(table)); | ||
519 | |||
520 | if (ERROR_START_OFFSET <= table.valid * ERROR_ELEM_SIZE) { | ||
521 | IWL_ERR(trans, "Start IWL Error Log Dump:\n"); | ||
522 | IWL_ERR(trans, "Status: 0x%08lX, count: %d\n", | ||
523 | mvm->status, table.valid); | ||
524 | } | ||
525 | |||
526 | /* Do not change this output - scripts rely on it */ | ||
527 | |||
528 | IWL_ERR(mvm, "Loaded firmware version: %s\n", mvm->fw->fw_version); | ||
529 | |||
530 | trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low, | ||
531 | table.data1, table.data2, table.data3, | ||
532 | table.blink2, table.ilink1, table.ilink2, | ||
533 | table.bcon_time, table.gp1, table.gp2, | ||
534 | table.gp3, table.ucode_ver, 0, | ||
535 | table.hw_ver, table.brd_ver); | ||
536 | IWL_ERR(mvm, "0x%08X | %-28s\n", table.error_id, | ||
537 | desc_lookup(table.error_id)); | ||
538 | IWL_ERR(mvm, "0x%08X | uPc\n", table.pc); | ||
539 | IWL_ERR(mvm, "0x%08X | branchlink1\n", table.blink1); | ||
540 | IWL_ERR(mvm, "0x%08X | branchlink2\n", table.blink2); | ||
541 | IWL_ERR(mvm, "0x%08X | interruptlink1\n", table.ilink1); | ||
542 | IWL_ERR(mvm, "0x%08X | interruptlink2\n", table.ilink2); | ||
543 | IWL_ERR(mvm, "0x%08X | data1\n", table.data1); | ||
544 | IWL_ERR(mvm, "0x%08X | data2\n", table.data2); | ||
545 | IWL_ERR(mvm, "0x%08X | data3\n", table.data3); | ||
546 | IWL_ERR(mvm, "0x%08X | beacon time\n", table.bcon_time); | ||
547 | IWL_ERR(mvm, "0x%08X | tsf low\n", table.tsf_low); | ||
548 | IWL_ERR(mvm, "0x%08X | tsf hi\n", table.tsf_hi); | ||
549 | IWL_ERR(mvm, "0x%08X | time gp1\n", table.gp1); | ||
550 | IWL_ERR(mvm, "0x%08X | time gp2\n", table.gp2); | ||
551 | IWL_ERR(mvm, "0x%08X | time gp3\n", table.gp3); | ||
552 | IWL_ERR(mvm, "0x%08X | uCode version\n", table.ucode_ver); | ||
553 | IWL_ERR(mvm, "0x%08X | hw version\n", table.hw_ver); | ||
554 | IWL_ERR(mvm, "0x%08X | board version\n", table.brd_ver); | ||
555 | IWL_ERR(mvm, "0x%08X | hcmd\n", table.hcmd); | ||
556 | IWL_ERR(mvm, "0x%08X | isr0\n", table.isr0); | ||
557 | IWL_ERR(mvm, "0x%08X | isr1\n", table.isr1); | ||
558 | IWL_ERR(mvm, "0x%08X | isr2\n", table.isr2); | ||
559 | IWL_ERR(mvm, "0x%08X | isr3\n", table.isr3); | ||
560 | IWL_ERR(mvm, "0x%08X | isr4\n", table.isr4); | ||
561 | IWL_ERR(mvm, "0x%08X | isr_pref\n", table.isr_pref); | ||
562 | IWL_ERR(mvm, "0x%08X | wait_event\n", table.wait_event); | ||
563 | IWL_ERR(mvm, "0x%08X | l2p_control\n", table.l2p_control); | ||
564 | IWL_ERR(mvm, "0x%08X | l2p_duration\n", table.l2p_duration); | ||
565 | IWL_ERR(mvm, "0x%08X | l2p_mhvalid\n", table.l2p_mhvalid); | ||
566 | IWL_ERR(mvm, "0x%08X | l2p_addr_match\n", table.l2p_addr_match); | ||
567 | IWL_ERR(mvm, "0x%08X | lmpm_pmg_sel\n", table.lmpm_pmg_sel); | ||
568 | IWL_ERR(mvm, "0x%08X | timestamp\n", table.u_timestamp); | ||
569 | IWL_ERR(mvm, "0x%08X | flow_handler\n", table.flow_handler); | ||
570 | |||
571 | if (mvm->support_umac_log) | ||
572 | iwl_mvm_dump_umac_error_log(mvm); | ||
573 | } | ||
574 | |||
575 | void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm) | 494 | void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm) |
576 | { | 495 | { |
577 | struct iwl_trans *trans = mvm->trans; | 496 | struct iwl_trans *trans = mvm->trans; |
578 | struct iwl_error_event_table table; | 497 | struct iwl_error_event_table table; |
579 | u32 base; | 498 | u32 base; |
580 | 499 | ||
581 | if (!fw_has_api(&mvm->fw->ucode_capa, IWL_UCODE_TLV_API_NEW_VERSION)) { | ||
582 | iwl_mvm_dump_nic_error_log_old(mvm); | ||
583 | return; | ||
584 | } | ||
585 | |||
586 | base = mvm->error_event_table; | 500 | base = mvm->error_event_table; |
587 | if (mvm->cur_ucode == IWL_UCODE_INIT) { | 501 | if (mvm->cur_ucode == IWL_UCODE_INIT) { |
588 | if (!base) | 502 | if (!base) |