Hi Can,
-----Original Message-----initialization during
From: Can Guo <cang@xxxxxxxxxxxxxx>
Sent: 28 March 2020 07:58
To: asutoshd@xxxxxxxxxxxxxx; nguyenb@xxxxxxxxxxxxxx;
hongwus@xxxxxxxxxxxxxx; rnayak@xxxxxxxxxxxxxx; linux-
scsi@xxxxxxxxxxxxxxx; kernel-team@xxxxxxxxxxx; saravanak@xxxxxxxxxx;
salyzyn@xxxxxxxxxx; cang@xxxxxxxxxxxxxx
Cc: Alim Akhtar <alim.akhtar@xxxxxxxxxxx>; Avri Altman
<avri.altman@xxxxxxx>; James E.J. Bottomley <jejb@xxxxxxxxxxxxx>; Martin
K. Petersen <martin.petersen@xxxxxxxxxx>; Stanley Chu
<stanley.chu@xxxxxxxxxxxx>; Bean Huo <beanhuo@xxxxxxxxxx>; Bart Van
Assche <bvanassche@xxxxxxx>; Venkat Gopalakrishnan
<venkatg@xxxxxxxxxxxxxx>; Tomas Winkler <tomas.winkler@xxxxxxxxx>; open
list <linux-kernel@xxxxxxxxxxxxxxx>
Subject: [PATCH v1 1/1] scsi: ufs: full reinit upon resume if link was off
From: Asutosh Das <asutoshd@xxxxxxxxxxxxxx>
During suspend, if the link is put to off, it would require a full
resume. This patch resets and restores both the hba and the card duringIn case you have faced issues by not doing what this patch does, it is worth
initialization.
mentioning that in the commit mesg.
Signed-off-by: Asutosh Das <asutoshd@xxxxxxxxxxxxxx>I don't have a way to test this path as of now, changes looks ok though.
Signed-off-by: Can Guo <cang@xxxxxxxxxxxxxx>
---
Reviewed-by: Alim Akhtar <alim.akhtar@xxxxxxxxxxx>
drivers/scsi/ufs/ufshcd.c | 8 ++++++--required
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index
f19a11e..21e41e5 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -8007,9 +8007,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
+ * 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))
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux
Foundation Collaborative Project.