* [PATCH v1 2/2] scsi: ufs-qcom: enter and exit hibern8 during clock scaling [not found] <1571794847-17529-1-git-send-email-asutoshd@codeaurora.org> @ 2019-10-23 1:40 ` Asutosh Das 0 siblings, 0 replies; 3+ messages in thread From: Asutosh Das @ 2019-10-23 1:40 UTC (permalink / raw) To: cang, vivek.gautam, rnayak, vinholikatti, jejb, martin.petersen Cc: linux-scsi, kernel-team, saravanak, salyzyn, Asutosh Das, Andy Gross, Alim Akhtar, Avri Altman, Pedro Sousa, James E.J. Bottomley, open list:ARM/QUALCOMM SUPPORT, open list 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> --- drivers/scsi/ufs/ufs-qcom.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index a5b7148..d117088 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -1305,6 +1305,9 @@ static int ufs_qcom_clk_scale_notify(struct ufs_hba *hba, int err = 0; if (status == PRE_CHANGE) { + err = ufshcd_uic_hibern8_enter(hba); + if (err) + return err; if (scale_up) err = ufs_qcom_clk_scale_up_pre_change(hba); else @@ -1324,6 +1327,7 @@ static int ufs_qcom_clk_scale_notify(struct ufs_hba *hba, dev_req_params->hs_rate, false); ufs_qcom_update_bus_bw_vote(host); + ufshcd_uic_hibern8_exit(hba); } out: -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project. ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v1 0/2] Put Qualcomm's ufs controller to hibern8 during clock scaling @ 2021-09-20 21:07 Bao D. Nguyen 2021-09-20 21:07 ` [PATCH v1 2/2] scsi: ufs-qcom: enter and exit " Bao D. Nguyen 0 siblings, 1 reply; 3+ messages in thread From: Bao D. Nguyen @ 2021-09-20 21:07 UTC (permalink / raw) To: cang, asutoshd, martin.petersen, linux-scsi; +Cc: Bao D. Nguyen, linux-arm-msm Asutosh Das tried to upstream this change about a year ago. We would like to resume his work because Qualcomm's ufs controller needs to be in hibern8 before scaling up/down the clocks. Just like ufshcd_uic_hibern8_exit() is already being exported, we would like to export ufshcd_uic_hibern8_enter() so that Qualcomm's ufs controller can be put in hibern8 state. Asutosh Das (2): scsi: ufs: export hibern8 entry and exit scsi: ufs-qcom: enter and exit hibern8 during clock scaling drivers/scsi/ufs/ufs-qcom.c | 12 +++++++++++- drivers/scsi/ufs/ufshcd.c | 4 ++-- drivers/scsi/ufs/ufshcd.h | 2 ++ 3 files changed, 15 insertions(+), 3 deletions(-) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v1 2/2] scsi: ufs-qcom: enter and exit hibern8 during clock scaling 2021-09-20 21:07 [PATCH v1 0/2] Put Qualcomm's ufs controller to " Bao D. Nguyen @ 2021-09-20 21:07 ` Bao D. Nguyen 2021-09-28 6:03 ` Alim Akhtar 0 siblings, 1 reply; 3+ messages in thread From: Bao D. Nguyen @ 2021-09-20 21:07 UTC (permalink / raw) To: cang, asutoshd, martin.petersen, linux-scsi Cc: linux-arm-msm, Bao D . Nguyen, Andy Gross, Bjorn Andersson, Alim Akhtar, Avri Altman, James E.J. Bottomley, open list From: Asutosh Das <asutoshd@codeaurora.org> 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> Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org> --- drivers/scsi/ufs/ufs-qcom.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index 92d4c61..92f5bb4 100644 --- a/drivers/scsi/ufs/ufs-qcom.c +++ b/drivers/scsi/ufs/ufs-qcom.c @@ -1212,24 +1212,34 @@ static int ufs_qcom_clk_scale_notify(struct ufs_hba *hba, int err = 0; if (status == PRE_CHANGE) { + err = ufshcd_uic_hibern8_enter(hba); + if (err) + return err; if (scale_up) err = ufs_qcom_clk_scale_up_pre_change(hba); else err = ufs_qcom_clk_scale_down_pre_change(hba); + if (err) + ufshcd_uic_hibern8_exit(hba); + } else { if (scale_up) err = ufs_qcom_clk_scale_up_post_change(hba); else err = ufs_qcom_clk_scale_down_post_change(hba); - if (err || !dev_req_params) + + if (err || !dev_req_params) { + ufshcd_uic_hibern8_exit(hba); goto out; + } ufs_qcom_cfg_timers(hba, dev_req_params->gear_rx, dev_req_params->pwr_rx, dev_req_params->hs_rate, false); + ufshcd_uic_hibern8_exit(hba); } out: -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project ^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: [PATCH v1 2/2] scsi: ufs-qcom: enter and exit hibern8 during clock scaling 2021-09-20 21:07 ` [PATCH v1 2/2] scsi: ufs-qcom: enter and exit " Bao D. Nguyen @ 2021-09-28 6:03 ` Alim Akhtar 0 siblings, 0 replies; 3+ messages in thread From: Alim Akhtar @ 2021-09-28 6:03 UTC (permalink / raw) To: 'Bao D. Nguyen', cang, asutoshd, martin.petersen, linux-scsi Cc: linux-arm-msm, 'Andy Gross', 'Bjorn Andersson', 'Avri Altman', 'James E.J. Bottomley', 'open list' Hello, >-----Original Message----- >From: nguyenb=codeaurora.org@mg.codeaurora.org >[mailto:nguyenb=codeaurora.org@mg.codeaurora.org] On Behalf Of Bao D. >Nguyen >Sent: Tuesday, September 21, 2021 2:38 AM >To: cang@codeaurora.org; asutoshd@codeaurora.org; >martin.petersen@oracle.com; linux-scsi@vger.kernel.org >Cc: linux-arm-msm@vger.kernel.org; Bao D . Nguyen ><nguyenb@codeaurora.org>; Andy Gross <agross@kernel.org>; Bjorn Andersson ><bjorn.andersson@linaro.org>; Alim Akhtar <alim.akhtar@samsung.com>; Avri >Altman <avri.altman@wdc.com>; James E.J. Bottomley <jejb@linux.ibm.com>; >open list <linux-kernel@vger.kernel.org> >Subject: [PATCH v1 2/2] scsi: ufs-qcom: enter and exit hibern8 during clock scaling > >From: Asutosh Das <asutoshd@codeaurora.org> > >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> >Signed-off-by: Bao D. Nguyen <nguyenb@codeaurora.org> >--- Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> > drivers/scsi/ufs/ufs-qcom.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > >diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c index >92d4c61..92f5bb4 100644 >--- a/drivers/scsi/ufs/ufs-qcom.c >+++ b/drivers/scsi/ufs/ufs-qcom.c >@@ -1212,24 +1212,34 @@ static int ufs_qcom_clk_scale_notify(struct ufs_hba >*hba, > int err = 0; > > if (status == PRE_CHANGE) { >+ err = ufshcd_uic_hibern8_enter(hba); >+ if (err) >+ return err; > if (scale_up) > err = ufs_qcom_clk_scale_up_pre_change(hba); > else > err = ufs_qcom_clk_scale_down_pre_change(hba); >+ if (err) >+ ufshcd_uic_hibern8_exit(hba); >+ > } else { > if (scale_up) > err = ufs_qcom_clk_scale_up_post_change(hba); > else > err = ufs_qcom_clk_scale_down_post_change(hba); > >- if (err || !dev_req_params) >+ >+ if (err || !dev_req_params) { >+ ufshcd_uic_hibern8_exit(hba); > goto out; >+ } > > ufs_qcom_cfg_timers(hba, > dev_req_params->gear_rx, > dev_req_params->pwr_rx, > dev_req_params->hs_rate, > false); >+ ufshcd_uic_hibern8_exit(hba); > } > > out: >-- >The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a >Linux Foundation Collaborative Project ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-09-28 6:05 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <1571794847-17529-1-git-send-email-asutoshd@codeaurora.org> 2019-10-23 1:40 ` [PATCH v1 2/2] scsi: ufs-qcom: enter and exit hibern8 during clock scaling Asutosh Das 2021-09-20 21:07 [PATCH v1 0/2] Put Qualcomm's ufs controller to " Bao D. Nguyen 2021-09-20 21:07 ` [PATCH v1 2/2] scsi: ufs-qcom: enter and exit " Bao D. Nguyen 2021-09-28 6:03 ` Alim Akhtar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).