arch/arm64/boot/dts/qcom/sm8650.dtsi | 51 ++++++++++++++++---- drivers/ufs/core/ufshcd-priv.h | 17 +++++-- drivers/ufs/core/ufshcd.c | 71 +++++++++++++++++++++------- drivers/ufs/host/ufs-mediatek.c | 1 + drivers/ufs/host/ufs-qcom.c | 60 ++++++++++++++++++----- include/ufs/ufshcd.h | 8 +++- 6 files changed, 166 insertions(+), 42 deletions(-)
With OPP V2 enabled, devfreq can scale clocks amongst multiple frequency plans. However, the gear speed is only toggled between min and max during clock scaling. Enable multi-level gear scaling by mapping clock frequencies to gear speeds, so that when devfreq scales clock frequencies we can put the UFS link at the appropraite gear speeds accordingly. This series has been tested on below platforms - SM8650 + UFS3.1 SM8750 + UFS4.0 Can Guo (6): scsi: ufs: core: Pass target_freq to clk_scale_notify() vops scsi: ufs: qcom: Pass target_freq to clk scale pre and post change scsi: ufs: core: Add a vops to map clock frequency to gear speed scsi: ufs: qcom: Implement the freq_to_gear_speed() vops scsi: ufs: core: Enable multi-level gear scaling scsi: ufs: core: Toggle Write Booster during clock scaling base on gear speed Ziqi Chen (2): scsi: ufs: core: Check if scaling up is required when disable clkscale ARM: dts: msm: Use Operation Points V2 for UFS on SM8650 arch/arm64/boot/dts/qcom/sm8650.dtsi | 51 ++++++++++++++++---- drivers/ufs/core/ufshcd-priv.h | 17 +++++-- drivers/ufs/core/ufshcd.c | 71 +++++++++++++++++++++------- drivers/ufs/host/ufs-mediatek.c | 1 + drivers/ufs/host/ufs-qcom.c | 60 ++++++++++++++++++----- include/ufs/ufshcd.h | 8 +++- 6 files changed, 166 insertions(+), 42 deletions(-) -- 2.34.1
On Thu, Jan 16, 2025 at 05:11:41PM +0800, Ziqi Chen wrote: You missed CCing linux-arm-msm mailing list to the cover letter. > With OPP V2 enabled, devfreq can scale clocks amongst multiple frequency > plans. However, the gear speed is only toggled between min and max during > clock scaling. Enable multi-level gear scaling by mapping clock frequencies > to gear speeds, so that when devfreq scales clock frequencies we can put > the UFS link at the appropraite gear speeds accordingly. > But the UFSHC PHY settings are not updated for each gear speed, isn't it? Then I'm wondering how much we get out of this 'multi-level gear scaling'. - Mani > This series has been tested on below platforms - > SM8650 + UFS3.1 > SM8750 + UFS4.0 > > > Can Guo (6): > scsi: ufs: core: Pass target_freq to clk_scale_notify() vops > scsi: ufs: qcom: Pass target_freq to clk scale pre and post change > scsi: ufs: core: Add a vops to map clock frequency to gear speed > scsi: ufs: qcom: Implement the freq_to_gear_speed() vops > scsi: ufs: core: Enable multi-level gear scaling > scsi: ufs: core: Toggle Write Booster during clock scaling base on > gear speed > > Ziqi Chen (2): > scsi: ufs: core: Check if scaling up is required when disable clkscale > ARM: dts: msm: Use Operation Points V2 for UFS on SM8650 > > arch/arm64/boot/dts/qcom/sm8650.dtsi | 51 ++++++++++++++++---- > drivers/ufs/core/ufshcd-priv.h | 17 +++++-- > drivers/ufs/core/ufshcd.c | 71 +++++++++++++++++++++------- > drivers/ufs/host/ufs-mediatek.c | 1 + > drivers/ufs/host/ufs-qcom.c | 60 ++++++++++++++++++----- > include/ufs/ufshcd.h | 8 +++- > 6 files changed, 166 insertions(+), 42 deletions(-) > > -- > 2.34.1 > -- மணிவண்ணன் சதாசிவம்
Hi Mani, Thanks for you review~ On 1/19/2025 3:57 PM, Manivannan Sadhasivam wrote: > On Thu, Jan 16, 2025 at 05:11:41PM +0800, Ziqi Chen wrote: > > You missed CCing linux-arm-msm mailing list to the cover letter. > Thank you for reminder, I will cc this group in next patch version. >> With OPP V2 enabled, devfreq can scale clocks amongst multiple frequency >> plans. However, the gear speed is only toggled between min and max during >> clock scaling. Enable multi-level gear scaling by mapping clock frequencies >> to gear speeds, so that when devfreq scales clock frequencies we can put >> the UFS link at the appropraite gear speeds accordingly. >> > > But the UFSHC PHY settings are not updated for each gear speed, isn't it? Then > I'm wondering how much we get out of this 'multi-level gear scaling'. Per design, we don't need to update any PHY setting for each gear speed mode. > > - Mani > -Ziqi >> This series has been tested on below platforms - >> SM8650 + UFS3.1 >> SM8750 + UFS4.0 >> >> >> Can Guo (6): >> scsi: ufs: core: Pass target_freq to clk_scale_notify() vops >> scsi: ufs: qcom: Pass target_freq to clk scale pre and post change >> scsi: ufs: core: Add a vops to map clock frequency to gear speed >> scsi: ufs: qcom: Implement the freq_to_gear_speed() vops >> scsi: ufs: core: Enable multi-level gear scaling >> scsi: ufs: core: Toggle Write Booster during clock scaling base on >> gear speed >> >> Ziqi Chen (2): >> scsi: ufs: core: Check if scaling up is required when disable clkscale >> ARM: dts: msm: Use Operation Points V2 for UFS on SM8650 >> >> arch/arm64/boot/dts/qcom/sm8650.dtsi | 51 ++++++++++++++++---- >> drivers/ufs/core/ufshcd-priv.h | 17 +++++-- >> drivers/ufs/core/ufshcd.c | 71 +++++++++++++++++++++------- >> drivers/ufs/host/ufs-mediatek.c | 1 + >> drivers/ufs/host/ufs-qcom.c | 60 ++++++++++++++++++----- >> include/ufs/ufshcd.h | 8 +++- >> 6 files changed, 166 insertions(+), 42 deletions(-) >> >> -- >> 2.34.1 >> >
Hi, [+linux-arm-msm@vger.kernel.org] On 16/01/2025 10:11, Ziqi Chen wrote: > With OPP V2 enabled, devfreq can scale clocks amongst multiple frequency > plans. However, the gear speed is only toggled between min and max during > clock scaling. Enable multi-level gear scaling by mapping clock frequencies > to gear speeds, so that when devfreq scales clock frequencies we can put > the UFS link at the appropraite gear speeds accordingly. > > This series has been tested on below platforms - > SM8650 + UFS3.1 Which board did you use ? the MTP ? > SM8750 + UFS4.0 Did you alse test it on SM8550 ? this platform is also concerned. And perhaps SM8450 should be also converted to the OPP table & tested. Please Cc linux-arm-msm on all patches since we're directly concerned by the whole changeset. Thanks, Neil > > > Can Guo (6): > scsi: ufs: core: Pass target_freq to clk_scale_notify() vops > scsi: ufs: qcom: Pass target_freq to clk scale pre and post change > scsi: ufs: core: Add a vops to map clock frequency to gear speed > scsi: ufs: qcom: Implement the freq_to_gear_speed() vops > scsi: ufs: core: Enable multi-level gear scaling > scsi: ufs: core: Toggle Write Booster during clock scaling base on > gear speed > > Ziqi Chen (2): > scsi: ufs: core: Check if scaling up is required when disable clkscale > ARM: dts: msm: Use Operation Points V2 for UFS on SM8650 > > arch/arm64/boot/dts/qcom/sm8650.dtsi | 51 ++++++++++++++++---- > drivers/ufs/core/ufshcd-priv.h | 17 +++++-- > drivers/ufs/core/ufshcd.c | 71 +++++++++++++++++++++------- > drivers/ufs/host/ufs-mediatek.c | 1 + > drivers/ufs/host/ufs-qcom.c | 60 ++++++++++++++++++----- > include/ufs/ufshcd.h | 8 +++- > 6 files changed, 166 insertions(+), 42 deletions(-) >
Hi Neil, Thanks for your comment. On 1/16/2025 5:28 PM, Neil Armstrong wrote: > Hi, > > [+linux-arm-msm@vger.kernel.org] > > On 16/01/2025 10:11, Ziqi Chen wrote: >> With OPP V2 enabled, devfreq can scale clocks amongst multiple frequency >> plans. However, the gear speed is only toggled between min and max during >> clock scaling. Enable multi-level gear scaling by mapping clock >> frequencies >> to gear speeds, so that when devfreq scales clock frequencies we can put >> the UFS link at the appropraite gear speeds accordingly. >> >> This series has been tested on below platforms - >> SM8650 + UFS3.1 > > Which board did you use ? the MTP ? > We tested on MTP. >> SM8750 + UFS4.0 > > Did you alse test it on SM8550 ? this platform is also concerned. > And perhaps SM8450 should be also converted to the OPP table & tested. > We didn't test in on SM8550 before, but now we already tested it on SM8550 once see you this comment. It works fine on SM8550 as well. I will update this information in next version. > Please Cc linux-arm-msm on all patches since we're directly concerned by > the whole changeset. Sure , Thank you for reminder, I will CC this group from next version. > > Thanks, > Neil > -Ziqi >> >> >> Can Guo (6): >> scsi: ufs: core: Pass target_freq to clk_scale_notify() vops >> scsi: ufs: qcom: Pass target_freq to clk scale pre and post change >> scsi: ufs: core: Add a vops to map clock frequency to gear speed >> scsi: ufs: qcom: Implement the freq_to_gear_speed() vops >> scsi: ufs: core: Enable multi-level gear scaling >> scsi: ufs: core: Toggle Write Booster during clock scaling base on >> gear speed >> >> Ziqi Chen (2): >> scsi: ufs: core: Check if scaling up is required when disable clkscale >> ARM: dts: msm: Use Operation Points V2 for UFS on SM8650 >> >> arch/arm64/boot/dts/qcom/sm8650.dtsi | 51 ++++++++++++++++---- >> drivers/ufs/core/ufshcd-priv.h | 17 +++++-- >> drivers/ufs/core/ufshcd.c | 71 +++++++++++++++++++++------- >> drivers/ufs/host/ufs-mediatek.c | 1 + >> drivers/ufs/host/ufs-qcom.c | 60 ++++++++++++++++++----- >> include/ufs/ufshcd.h | 8 +++- >> 6 files changed, 166 insertions(+), 42 deletions(-) >> >
© 2016 - 2025 Red Hat, Inc.