Message ID | 1586844892-22720-1-git-send-email-cang@codeaurora.org (mailing list archive) |
---|---|
State | Mainlined |
Commit | 089f5b64b8af10aaef176f91144275d25e71e2ff |
Headers | show |
Series | [v2,1/1] scsi: ufs: full reinit upon resume if link was off | expand |
Can, > During suspend, if the link is put to off, it would require a full > initialization during resume. This patch resets and restores both the > host and the card during initialization, otherwise, host only reset > and restore may fail occasionally. Applied to 5.8/scsi-queue, thanks! > Signed-off-by: Asutosh Das <asutoshd@codeaurora.org> > Signed-off-by: Can Guo <cang@codeaurora.org> > Reviewed-by: Bean Huo <beanhuo@micron.com> > Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> > Acked-by: Stanley Chu <stanley.chu@mediatek.com> > > Change since v1: > - Incorporated Alim's comments. > > --- > drivers/scsi/ufs/ufshcd.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) Don't forget to put the changelog after the "---" separator.
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 64e42ef..90313c8 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -8048,9 +8048,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))