diff options
author | Venkat Gopalakrishnan <venkatg@codeaurora.org> | 2016-08-26 16:23:30 -0700 |
---|---|---|
committer | Venkat Gopalakrishnan <venkatg@codeaurora.org> | 2016-09-12 11:30:36 -0700 |
commit | 77c50a22e8befe041eb456858cb793a4bee6252e (patch) | |
tree | 08f7889c2d6c55e2a70efcff0e2d28933b6f36ce /drivers/scsi/ufs | |
parent | b1fe3eedb24a47a04719bb6b5125b7e5af306c0e (diff) |
scsi: ufs: dump hw regs on link failures
Dump host state, power info and host/vendor specific registers
on link failures. This provides useful info to debug the failures.
Change-Id: I76a4ea56f3aee6a51a5930381ad8d12ca8b43551
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Diffstat (limited to 'drivers/scsi/ufs')
-rw-r--r-- | drivers/scsi/ufs/ufshcd.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index a49b3c7bc4ef..d478767ad3dd 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -3932,8 +3932,12 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd) ret = (status != PWR_OK) ? status : -1; } out: - if (ret) + if (ret) { ufsdbg_set_err_state(hba); + ufshcd_print_host_state(hba); + ufshcd_print_pwr_info(hba); + ufshcd_print_host_regs(hba); + } ufshcd_save_tstamp_of_last_dme_cmd(hba); spin_lock_irqsave(hba->host->host_lock, flags); @@ -4644,8 +4648,12 @@ link_startup: ret = ufshcd_make_hba_operational(hba); out: - if (ret) + if (ret) { dev_err(hba->dev, "link startup failed %d\n", ret); + ufshcd_print_host_state(hba); + ufshcd_print_pwr_info(hba); + ufshcd_print_host_regs(hba); + } return ret; } |