2021-09-21 02:59:44

by Bao D. Nguyen

[permalink] [raw]
Subject: [PATCH v1 1/2] scsi: ufs: export hibern8 entry and exit

From: Asutosh Das <[email protected]>

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 <[email protected]>
Signed-off-by: Bao D. Nguyen <[email protected]>
---
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);
static 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)
}
EXPORT_SYMBOL_GPL(ufshcd_link_recovery);

-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 *hba)

return ret;
}
+EXPORT_SYMBOL_GPL(ufshcd_uic_hibern8_enter);

int ufshcd_uic_hibern8_exit(struct ufs_hba *hba)
{
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index 52ea6f3..0cc55a2 100644
--- 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 *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);
#endif /* End of Header */
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2021-09-28 05:50:40

by Alim Akhtar

[permalink] [raw]
Subject: RE: [PATCH v1 1/2] scsi: ufs: export hibern8 entry and exit

Hi Bao

>-----Original Message-----
>From: [email protected]
>[mailto:[email protected]] On Behalf Of Bao D.
>Nguyen
>Sent: Tuesday, September 21, 2021 2:38 AM
>To: [email protected]; [email protected];
>[email protected]; [email protected]
>Cc: [email protected]; Bao D . Nguyen
><[email protected]>; Alim Akhtar <[email protected]>; Avri
>Altman <[email protected]>; James E.J. Bottomley <[email protected]>;
>Bean Huo <[email protected]>; Stanley Chu <[email protected]>;
>Bart Van Assche <[email protected]>; Jaegeuk Kim <[email protected]>;
>Adrian Hunter <[email protected]>; Keoseong Park
><[email protected]>; open list <[email protected]>
>Subject: [PATCH v1 1/2] scsi: ufs: export hibern8 entry and exit
>
>From: Asutosh Das <[email protected]>
>
>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 <[email protected]>
>Signed-off-by: Bao D. Nguyen <[email protected]>
>---
> 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);
static
>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) }
>EXPORT_SYMBOL_GPL(ufshcd_link_recovery);
>
>-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
>*hba)
>
> return ret;
> }
>+EXPORT_SYMBOL_GPL(ufshcd_uic_hibern8_enter);
>
> int ufshcd_uic_hibern8_exit(struct ufs_hba *hba) { diff --git
>a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index
52ea6f3..0cc55a2
>100644
>--- 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
>*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

Also move ufshcd_uic_hibern8_enter() before _earlier_
ufshcd_uic_hibern8_exit() declaration.

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


2021-09-28 17:32:43

by Bao D. Nguyen

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

On 2021-09-27 22:39, Alim Akhtar wrote:
> Hi Bao
>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Bao D.
>> Nguyen
>> Sent: Tuesday, September 21, 2021 2:38 AM
>> To: [email protected]; [email protected];
>> [email protected]; [email protected]
>> Cc: [email protected]; Bao D . Nguyen
>> <[email protected]>; Alim Akhtar <[email protected]>; Avri
>> Altman <[email protected]>; James E.J. Bottomley
>> <[email protected]>;
>> Bean Huo <[email protected]>; Stanley Chu <[email protected]>;
>> Bart Van Assche <[email protected]>; Jaegeuk Kim
>> <[email protected]>;
>> Adrian Hunter <[email protected]>; Keoseong Park
>> <[email protected]>; open list <[email protected]>
>> Subject: [PATCH v1 1/2] scsi: ufs: export hibern8 entry and exit
>>
>> From: Asutosh Das <[email protected]>
>>
>> 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 <[email protected]>
>> Signed-off-by: Bao D. Nguyen <[email protected]>
>> ---
>> 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);
> static
>> 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) }
>> EXPORT_SYMBOL_GPL(ufshcd_link_recovery);
>>
>> -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
>> *hba)
>>
>> return ret;
>> }
>> +EXPORT_SYMBOL_GPL(ufshcd_uic_hibern8_enter);
>>
>> int ufshcd_uic_hibern8_exit(struct ufs_hba *hba) { diff --git
>> a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index
> 52ea6f3..0cc55a2
>> 100644
>> --- 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
>> *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,
> a
>> Linux Foundation Collaborative Project