Re: [PATCH 00/14] UFS: Add OPP and interconnect support

From: Manivannan Sadhasivam
Date: Wed Jul 12 2023 - 06:41:33 EST


On Wed, Jul 12, 2023 at 04:01:55PM +0530, Manivannan Sadhasivam wrote:
> Hi,
>
> This series adds OPP (Operating Points) support to UFSHCD driver and
> interconnect support to Qcom UFS driver.
>

Missed to cc SCSI folks. Will be resending this series. Sorry for the noise.

- Mani

> Motivation behind adding OPP support is to scale both clocks as well as
> regulators/performance state dynamically. Currently, UFSHCD just scales
> clock frequency during runtime with the help of "freq-table-hz" property
> defined in devicetree. With the addition of OPP tables in devicetree (as
> done for Qcom SDM845 and SM8250 SoCs in this series) UFSHCD can now scale
> both clocks and performance state of power domain which helps in power
> saving.
>
> For the addition of OPP support to UFSHCD, there are changes required to
> the OPP framework and devfreq drivers which are also added in this series.
>
> Finally, interconnect support is added to Qcom UFS driver for scaling the
> interconnect path dynamically. This is required to avoid boot crash in
> recent SoCs and also to save power during runtime. More information is
> available in patch 13/13.
>
> Credits
> =======
>
> This series is a continuation of previous work by Krzysztof Kozlowski [1]
> and Brian Masney [2]. Ideally, this could've split into two series (OPP
> and interconnect) but since there will be a dependency in the devicetree,
> I decided to keep them in a single series.
>
> Testing
> =======
>
> This series is tested on 96Boards RB3 (SDM845 SoC) and RB5 (SM8250 SoC)
> development boards.
>
> Merging Strategy
> ================
>
> An immutable branch might be required between OPP and SCSI trees because of
> the API dependency (devfreq too). And I leave it up to the maintainers to
> decide.
>
> Thanks,
> Mani
>
> [1] https://lore.kernel.org/all/20220513061347.46480-1-krzysztof.kozlowski@xxxxxxxxxx/
> [2] https://lore.kernel.org/all/20221117104957.254648-1-bmasney@xxxxxxxxxx/
>
> Krzysztof Kozlowski (2):
> dt-bindings: ufs: common: add OPP table
> arm64: dts: qcom: sdm845: Add OPP table support to UFSHC
>
> Manivannan Sadhasivam (12):
> dt-bindings: opp: Increase maxItems for opp-hz property
> arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
> arm64: dts: qcom: sdm845: Fix the min frequency of "ice_core_clk"
> arm64: dts: qcom: sm8250: Add OPP table support to UFSHC
> OPP: Introduce dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs
> OPP: Introduce dev_pm_opp_get_freq_indexed() API
> PM / devfreq: Switch to dev_pm_opp_find_freq_{ceil/floor}_indexed()
> APIs
> scsi: ufs: core: Add OPP support for scaling clocks and regulators
> scsi: ufs: host: Add support for parsing OPP
> arm64: dts: qcom: sdm845: Add interconnect paths to UFSHC
> arm64: dts: qcom: sm8250: Add interconnect paths to UFSHC
> scsi: ufs: qcom: Add support for scaling interconnects
>
> .../devicetree/bindings/opp/opp-v2-base.yaml | 2 +-
> .../devicetree/bindings/ufs/ufs-common.yaml | 34 ++++-
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 47 ++++--
> arch/arm64/boot/dts/qcom/sm8250.dtsi | 43 ++++--
> drivers/devfreq/devfreq.c | 14 +-
> drivers/opp/core.c | 76 ++++++++++
> drivers/ufs/core/ufshcd.c | 142 ++++++++++++++----
> drivers/ufs/host/ufs-qcom.c | 131 +++++++++++++++-
> drivers/ufs/host/ufs-qcom.h | 3 +
> drivers/ufs/host/ufshcd-pltfrm.c | 116 ++++++++++++++
> include/linux/pm_opp.h | 26 ++++
> include/ufs/ufshcd.h | 4 +
> 12 files changed, 574 insertions(+), 64 deletions(-)
>
> --
> 2.25.1
>

--
மணிவண்ணன் சதாசிவம்