From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: vireshk@kernel.org, nm@ti.com, sboyd@kernel.org,
myungjoo.ham@samsung.com, kyungmin.park@samsung.com,
cw00.choi@samsung.com, andersson@kernel.org,
konrad.dybcio@linaro.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
jejb@linux.ibm.com, martin.petersen@oracle.com
Cc: alim.akhtar@samsung.com, avri.altman@wdc.com, bvanassche@acm.org,
linux-scsi@vger.kernel.org, linux-pm@vger.kernel.org,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
quic_asutoshd@quicinc.com, quic_cang@quicinc.com,
quic_nitirawa@quicinc.com, quic_narepall@quicinc.com,
quic_bhaskarv@quicinc.com, quic_richardp@quicinc.com,
quic_nguyenb@quicinc.com, quic_ziqichen@quicinc.com,
bmasney@redhat.com, krzysztof.kozlowski@linaro.org,
linux-kernel@vger.kernel.org,
Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Subject: [PATCH v2 00/15] UFS: Add OPP and interconnect support
Date: Thu, 20 Jul 2023 11:10:45 +0530 [thread overview]
Message-ID: <20230720054100.9940-1-manivannan.sadhasivam@linaro.org> (raw)
Hi,
This series adds OPP (Operating Points) support to UFSHCD driver and
interconnect support to Qcom UFS driver.
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@linaro.org/
[2] https://lore.kernel.org/all/20221117104957.254648-1-bmasney@redhat.com/
Changes in v2:
* Added more description to the bindings patch 2/15
* Fixed dev_pm_opp_put() usage in patch 10/15
* Added a new patch for adding enums for UFS lanes 14/15
* Changed the icc variables to mem_bw and cfg_bw and used
the enums for gears and lanes in bw_table
* Collected review tags
* Added SCSI list and folks
* Removed duplicate patches
Krzysztof Kozlowski (2):
dt-bindings: ufs: common: add OPP table
arm64: dts: qcom: sdm845: Add OPP table support to UFSHC
Manivannan Sadhasivam (13):
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: core: Add enums for UFS lanes
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 | 148 +++++++++++++-----
drivers/ufs/host/ufs-qcom.c | 131 +++++++++++++++-
drivers/ufs/host/ufs-qcom.h | 3 +
drivers/ufs/host/ufshcd-pltfrm.c | 120 +++++++++++++-
include/linux/pm_opp.h | 26 +++
include/ufs/ufshcd.h | 4 +
include/ufs/unipro.h | 6 +
13 files changed, 586 insertions(+), 68 deletions(-)
--
2.25.1
next reply other threads:[~2023-07-20 5:41 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-20 5:40 Manivannan Sadhasivam [this message]
2023-07-20 5:40 ` [PATCH v2 01/15] dt-bindings: ufs: common: add OPP table Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 02/15] dt-bindings: opp: Increase maxItems for opp-hz property Manivannan Sadhasivam
2023-07-24 15:51 ` Rob Herring
2023-07-25 4:11 ` Viresh Kumar
2023-07-20 5:40 ` [PATCH v2 03/15] arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 04/15] arm64: dts: qcom: sdm845: Fix the min frequency of "ice_core_clk" Manivannan Sadhasivam
2023-07-21 7:18 ` Viresh Kumar
2023-07-21 11:57 ` Manivannan Sadhasivam
2023-07-22 3:15 ` Bjorn Andersson
2023-07-24 5:48 ` Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 05/15] arm64: dts: qcom: sdm845: Add OPP table support to UFSHC Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 06/15] arm64: dts: qcom: sm8250: " Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 07/15] OPP: Introduce dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 08/15] OPP: Introduce dev_pm_opp_get_freq_indexed() API Manivannan Sadhasivam
2023-07-21 5:54 ` Dan Carpenter
2023-07-20 5:40 ` [PATCH v2 09/15] PM / devfreq: Switch to dev_pm_opp_find_freq_{ceil/floor}_indexed() APIs Manivannan Sadhasivam
2023-07-23 20:06 ` Chanwoo Choi
2023-07-24 5:46 ` Manivannan Sadhasivam
2023-07-24 21:57 ` Chanwoo Choi
2023-07-20 5:40 ` [PATCH v2 10/15] scsi: ufs: core: Add OPP support for scaling clocks and regulators Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 11/15] scsi: ufs: host: Add support for parsing OPP Manivannan Sadhasivam
2023-07-20 21:32 ` kernel test robot
2023-07-20 23:26 ` kernel test robot
2023-07-20 5:40 ` [PATCH v2 12/15] arm64: dts: qcom: sdm845: Add interconnect paths to UFSHC Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 13/15] arm64: dts: qcom: sm8250: " Manivannan Sadhasivam
2023-07-20 5:40 ` [PATCH v2 14/15] scsi: ufs: core: Add enums for UFS lanes Manivannan Sadhasivam
2023-07-20 5:41 ` [PATCH v2 15/15] scsi: ufs: qcom: Add support for scaling interconnects Manivannan Sadhasivam
2023-07-20 16:44 ` [PATCH v2 00/15] UFS: Add OPP and interconnect support Bart Van Assche
2023-07-20 16:57 ` Manivannan Sadhasivam
2023-07-21 9:42 ` Viresh Kumar
2023-07-21 11:54 ` Manivannan Sadhasivam
2023-07-24 7:52 ` Viresh Kumar
2023-07-22 5:17 ` (subset) " Bjorn Andersson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230720054100.9940-1-manivannan.sadhasivam@linaro.org \
--to=manivannan.sadhasivam@linaro.org \
--cc=alim.akhtar@samsung.com \
--cc=andersson@kernel.org \
--cc=avri.altman@wdc.com \
--cc=bmasney@redhat.com \
--cc=bvanassche@acm.org \
--cc=conor+dt@kernel.org \
--cc=cw00.choi@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=jejb@linux.ibm.com \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=myungjoo.ham@samsung.com \
--cc=nm@ti.com \
--cc=quic_asutoshd@quicinc.com \
--cc=quic_bhaskarv@quicinc.com \
--cc=quic_cang@quicinc.com \
--cc=quic_narepall@quicinc.com \
--cc=quic_nguyenb@quicinc.com \
--cc=quic_nitirawa@quicinc.com \
--cc=quic_richardp@quicinc.com \
--cc=quic_ziqichen@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=vireshk@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).