Re: [PATCH v1 1/2] scsi: ufs: export hibern8 entry and exit

From: nguyenb
Date: Tue Sep 28 2021 - 13:30:36 EST

On 2021-09-27 22:39, Alim Akhtar wrote:
Hi Bao

-----Original Message-----
[] On Behalf Of Bao D.
Sent: Tuesday, September 21, 2021 2:38 AM
To: cang@xxxxxxxxxxxxxx; asutoshd@xxxxxxxxxxxxxx;
martin.petersen@xxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx
Cc: linux-arm-msm@xxxxxxxxxxxxxxx; Bao D . Nguyen
<nguyenb@xxxxxxxxxxxxxx>; Alim Akhtar <alim.akhtar@xxxxxxxxxxx>; Avri
Altman <avri.altman@xxxxxxx>; James E.J. Bottomley <jejb@xxxxxxxxxxxxx>;
Bean Huo <beanhuo@xxxxxxxxxx>; Stanley Chu <stanley.chu@xxxxxxxxxxxx>;
Bart Van Assche <bvanassche@xxxxxxx>; Jaegeuk Kim <jaegeuk@xxxxxxxxxx>;
Adrian Hunter <adrian.hunter@xxxxxxxxx>; Keoseong Park
<keosung.park@xxxxxxxxxxx>; open list <linux-kernel@xxxxxxxxxxxxxxx>
Subject: [PATCH v1 1/2] scsi: ufs: export hibern8 entry and exit

From: Asutosh Das <asutoshd@xxxxxxxxxxxxxx>

Qualcomm controllers need to be in hibern8 before scaling up or down the
clocks. Hence, export the hibern8 entry and exit functions.

Signed-off-by: Asutosh Das <asutoshd@xxxxxxxxxxxxxx>
Signed-off-by: Bao D. Nguyen <nguyenb@xxxxxxxxxxxxxx>
drivers/scsi/ufs/ufshcd.c | 4 ++--
drivers/scsi/ufs/ufshcd.h | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index
3841ab49..f3aad32 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -227,7 +227,6 @@ static void ufshcd_hba_exit(struct ufs_hba *hba);
int ufshcd_clear_ua_wluns(struct ufs_hba *hba); static int
ufshcd_probe_hba(struct ufs_hba *hba, bool async); static int
ufshcd_setup_clocks(struct ufs_hba *hba, bool on); -static int
ufshcd_uic_hibern8_enter(struct ufs_hba *hba); static inline void
ufshcd_add_delay_before_dme_cmd(struct ufs_hba *hba); static int
ufshcd_host_reset_and_restore(struct ufs_hba *hba); static void
ufshcd_resume_clkscaling(struct ufs_hba *hba); @@ -4116,7 +4115,7 @@ int
ufshcd_link_recovery(struct ufs_hba *hba) }

-static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
+int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
int ret;
struct uic_command uic_cmd = {0};
@@ -4138,6 +4137,7 @@ static int ufshcd_uic_hibern8_enter(struct ufs_hba

return ret;

int ufshcd_uic_hibern8_exit(struct ufs_hba *hba) { diff --git
a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -1397,4 +1397,6 @@ static inline int ufshcd_rpmb_rpm_put(struct ufs_hba
return pm_runtime_put(&hba->sdev_rpmb->sdev_gendev);

+int ufshcd_uic_hibern8_enter(struct ufs_hba *hba); int
+ufshcd_uic_hibern8_exit(struct ufs_hba *hba);

This will add ufshcd_uic_hibern8_exit() twice, it is already add by
commit: 9d19bf7ad168a8: scsi: ufs: export some functions for vendor usage
Thank you, Alim. I have corrected this in Patch V2.

Also move ufshcd_uic_hibern8_enter() before _earlier_
ufshcd_uic_hibern8_exit() declaration.
Yes, I have addressed this in the Patch V2. Please review.
Thank you.

#endif /* End of Header */
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
Linux Foundation Collaborative Project