Message ID | 186237103353b5a79c3496e619fca894dbc78600.1589997078.git.asutoshd@codeaurora.org |
---|---|
State | New |
Headers | show |
Series | [v4,1/2] scsi: ufs: export hibern8 entry | expand |
Hi Avri, On 5/20/2020 2:33 PM, Avri Altman wrote: > Hi, > >> >> >> Qualcomm controller needs to be in hibern8 before scaling clocks. >> This change puts the controller in hibern8 state before scaling >> and brings it out after scaling of clocks. >> >> Signed-off-by: Asutosh Das <asutoshd@codeaurora.org> > > I guess that your previous versions are pretty far back - , > I noticed a comment by Pedro, so you might want to resend this series. > Ok. > What happens if the pre-change is successful, > but you are not getting to the post change because, e.g. ufshcd_set_clk_freq failed? > I agree. Let me check this. > Also, this piece of code is ~5 years old, so you might want to elaborate on how come hibernation is now needed. > > Thanks, > Avri > Thanks for the review. Hibernation was needed since long actually. I guess it was never pushed upstream. Thanks, -asd
On 5/25/2021 12:57 AM, Lee Jones wrote: > On Wed, 20 May 2020 at 22:59, Asutosh Das (asd) <asutoshd@codeaurora.org > <mailto:asutoshd@codeaurora.org>> wrote: > > Hi Avri, > > On 5/20/2020 2:33 PM, Avri Altman wrote: > > Hi, > > > >> > >> > >> Qualcomm controller needs to be in hibern8 before scaling clocks. > >> This change puts the controller in hibern8 state before scaling > >> and brings it out after scaling of clocks. > >> > >> Signed-off-by: Asutosh Das <asutoshd@codeaurora.org > <mailto:asutoshd@codeaurora.org>> > > > > I guess that your previous versions are pretty far back - , > > I noticed a comment by Pedro, so you might want to resend this > series. > > > Ok. > > > What happens if the pre-change is successful, > > but you are not getting to the post change because, e.g. > ufshcd_set_clk_freq failed? > > > I agree. Let me check this. > > > Also, this piece of code is ~5 years old, so you might want to > elaborate on how come hibernation is now needed. > > > > Thanks, > > Avri > > > > Thanks for the review. Hibernation was needed since long actually. > I guess it was never pushed upstream. > > > Good morning Asd, > > Any luck with getting this upstream? > > Looks like this was the last submission. > > Did something change? Is this no longer required? > Hi Lee This slipped away. I may not get to this soon. I'd prefer to drop it for now and come back to it when I've some time. Thanks, -asd > -- > Lee Jones [李琼斯] > Linaro Services Senior Technical Lead > Linaro.org │ Open source software for ARM SoCs > Follow Linaro: Facebook | Twitter | Blog
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index c3389c9..aaf4adf 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -243,7 +243,6 @@ static int ufshcd_probe_hba(struct ufs_hba *hba, bool async); static int __ufshcd_setup_clocks(struct ufs_hba *hba, bool on, bool skip_ref_clk); 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); @@ -3877,7 +3876,7 @@ static int __ufshcd_uic_hibern8_enter(struct ufs_hba *hba) return ret; } -static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba) +int ufshcd_uic_hibern8_enter(struct ufs_hba *hba) { int ret = 0, retries; @@ -3889,6 +3888,7 @@ static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba) out: 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 88d4202..defc12c 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -835,6 +835,7 @@ int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask, void ufshcd_parse_dev_ref_clk_freq(struct ufs_hba *hba, struct clk *refclk); void ufshcd_update_reg_hist(struct ufs_err_reg_hist *reg_hist, u32 reg); +int ufshcd_uic_hibern8_enter(struct ufs_hba *hba); static inline void check_upiu_size(void) {
Qualcomm controllers need to be in hibern8 before scaling up or down the clocks. Hence, export the hibern8 entry function. Signed-off-by: Asutosh Das <asutoshd@codeaurora.org> --- drivers/scsi/ufs/ufshcd.c | 4 ++-- drivers/scsi/ufs/ufshcd.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-)