ret = (status != PWR_OK) ? status : -1;
}
out:
+ /* Dump debugging information to system memory */
if (ret) {
+ ufshcd_vops_dbg_register_dump(hba);
ufshcd_print_host_state(hba);
ufshcd_print_pwr_info(hba);
ufshcd_print_host_regs(hba);
pm_runtime_get_sync(hba->dev);
ufshcd_hold(hba, false);
+ /* Dump debugging information to system memory */
+ ufshcd_vops_dbg_register_dump(hba);
spin_lock_irqsave(hba->host->host_lock, flags);
if (hba->ufshcd_state == UFSHCD_STATE_RESET)
goto out;
hba = shost_priv(host);
tag = cmd->request->tag;
+ /* Dump debugging information to system memory */
+ ufshcd_vops_dbg_register_dump(hba);
lrbp = &hba->lrb[tag];
err = ufshcd_issue_tm_cmd(hba, lrbp->lun, 0, UFS_LOGICAL_RESET, &resp);
if (err || resp != UPIU_TASK_MANAGEMENT_FUNC_COMPL) {
return ufshcd_eh_host_reset_handler(cmd);
ufshcd_hold(hba, false);
+ /* Dump debugging information to system memory */
+ ufshcd_vops_dbg_register_dump(hba);
reg = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
/* If command is already aborted/completed, return SUCCESS */
if (!(test_bit(tag, &hba->outstanding_reqs))) {