Print host state and register dumps while suspend or resume flow
is failed.

Signed-off-by: Stanley Chu <[email protected]>
---
 drivers/scsi/ufs/ufs-mediatek.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c
index d56ce8d97d4e..b0f626f6f9fe 100644
--- a/drivers/scsi/ufs/ufs-mediatek.c
+++ b/drivers/scsi/ufs/ufs-mediatek.c
@@ -469,22 +469,25 @@ static int ufs_mtk_link_set_hpm(struct ufs_hba *hba)
 
        err = ufshcd_hba_enable(hba);
        if (err)
-               return err;
+               goto out;
 
        err = ufs_mtk_unipro_set_pm(hba, 0);
        if (err)
-               return err;
+               goto out;
 
        err = ufshcd_uic_hibern8_exit(hba);
        if (!err)
                ufshcd_set_link_active(hba);
        else
-               return err;
+               goto out;
 
        err = ufshcd_make_hba_operational(hba);
        if (err)
-               return err;
-
+               goto out;
+out:
+       if (err)
+               ufshcd_print_info(hba, UFS_INFO_HOST_STATE |
+                                 UFS_INFO_HOST_REGS | UFS_INFO_PWR);
        return 0;
 }
 
@@ -494,6 +497,9 @@ static int ufs_mtk_link_set_lpm(struct ufs_hba *hba)
 
        err = ufs_mtk_unipro_set_pm(hba, 1);
        if (err) {
+               ufshcd_print_info(hba, UFS_INFO_HOST_STATE |
+                                 UFS_INFO_HOST_REGS | UFS_INFO_PWR);
+
                /* Resume UniPro state for following error recovery */
                ufs_mtk_unipro_set_pm(hba, 0);
                return err;
-- 
2.18.0

Reply via email to