mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
scsi: ufs: Dump PA_VS_STATUS_REG1 in eh
Dump PA_VS_STATUS_REG1 when full reset is needed in eh, which is helpful for error debugging. Change-Id: Iad3c2fc09c88598428762b5da09e13b46493fc7d Signed-off-by: Can Guo <cang@codeaurora.org>
This commit is contained in:
parent
bbc7f2d3ed
commit
20235bca1c
2 changed files with 15 additions and 5 deletions
|
|
@ -164,6 +164,7 @@ enum ufs_qcom_phy_init_type {
|
|||
UFS_QCOM_DBG_PRINT_TEST_BUS_EN)
|
||||
|
||||
/* QUniPro Vendor specific attributes */
|
||||
#define PA_VS_STATUS_REG1 0x9001
|
||||
#define PA_VS_CONFIG_REG1 0x9000
|
||||
#define SAVECONFIGTIME_MODE_MASK 0x6000
|
||||
#define DME_VS_CORE_CLK_CTRL 0xD002
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
#include "ufs-sysfs.h"
|
||||
#include "ufs_bsg.h"
|
||||
#include "ufshcd-crypto.h"
|
||||
#include "ufs-qcom.h"
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/ufs.h>
|
||||
|
|
@ -5737,17 +5738,25 @@ static void ufshcd_err_handler(struct work_struct *work)
|
|||
goto skip_err_handling;
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(hba->host->host_lock, flags);
|
||||
ufshcd_vops_dbg_register_dump(hba);
|
||||
spin_lock_irqsave(hba->host->host_lock, flags);
|
||||
|
||||
if ((hba->saved_err & INT_FATAL_ERRORS) ||
|
||||
(hba->saved_err & UFSHCD_UIC_HIBERN8_MASK) ||
|
||||
((hba->saved_err & UIC_ERROR) &&
|
||||
(hba->saved_uic_err & (UFSHCD_UIC_DL_PA_INIT_ERROR |
|
||||
UFSHCD_UIC_DL_NAC_RECEIVED_ERROR |
|
||||
UFSHCD_UIC_DL_TCx_REPLAY_ERROR))))
|
||||
UFSHCD_UIC_DL_TCx_REPLAY_ERROR)))) {
|
||||
u32 pa_vs_status_reg1 = 0;
|
||||
int ret;
|
||||
|
||||
spin_unlock_irqrestore(hba->host->host_lock, flags);
|
||||
ret = ufshcd_dme_get(hba, UIC_ARG_MIB(PA_VS_STATUS_REG1),
|
||||
&pa_vs_status_reg1);
|
||||
dev_err(hba->dev, "%s: pa_vs_status_reg1 0x%x, ret %d\n",
|
||||
__func__, pa_vs_status_reg1, ret);
|
||||
ufshcd_vops_dbg_register_dump(hba);
|
||||
spin_lock_irqsave(hba->host->host_lock, flags);
|
||||
|
||||
needs_reset = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* if host reset is required then skip clearing the pending
|
||||
|
|
|
|||
Loading…
Reference in a new issue