From 57d259f65743e592b9a32ce0c833ddafdbbc71f1 Mon Sep 17 00:00:00 2001 From: Asutosh Das Date: Fri, 27 Mar 2020 19:27:31 -0700 Subject: [PATCH] FROMLIST: scsi: ufs: full reinit upon resume if link was off During suspend, if the link is put to off, it would require a full initialization during resume. This patch resets and restores both the hba and the card during initialization. Signed-off-by: Asutosh Das Signed-off-by: Can Guo Acked-by: Stanley Chu Reviewed-by: Bean Huo Bug: 152930830 Change-Id: I69f1dc00bb885de20e275d23418c172982fffb7e Link: https://lore.kernel.org/patchwork/patch/1218473/ Signed-off-by: Can Guo --- drivers/scsi/ufs/ufshcd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index e3d237675361..18324002b9a0 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -8205,9 +8205,13 @@ static int ufshcd_resume(struct ufs_hba *hba, enum ufs_pm_op pm_op) else goto vendor_suspend; } else if (ufshcd_is_link_off(hba)) { - ret = ufshcd_host_reset_and_restore(hba); /* - * ufshcd_host_reset_and_restore() should have already + * A full initialization of the host and the device is required + * since the link was put to off during suspend. + */ + ret = ufshcd_reset_and_restore(hba); + /* + * ufshcd_reset_and_restore() should have already * set the link state as active */ if (ret || !ufshcd_is_link_active(hba))