From: Nitin Rawat <quic_nitirawa@quicinc.com>
To: vkoul@kernel.org, kishon@kernel.org,
manivannan.sadhasivam@linaro.org,
James.Bottomley@HansenPartnership.com,
martin.petersen@oracle.com, bvanassche@acm.org,
andersson@kernel.org, neil.armstrong@linaro.org,
konrad.dybcio@oss.qualcomm.com
Cc: quic_rdwivedi@quicinc.com, quic_cang@quicinc.com,
linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
Nitin Rawat <quic_nitirawa@quicinc.com>
Subject: [PATCH V4 00/11] Refactor ufs phy powerup sequence
Date: Sat, 3 May 2025 21:54:29 +0530 [thread overview]
Message-ID: <20250503162440.2954-1-quic_nitirawa@quicinc.com> (raw)
In Current code regulators enable, clks enable, calibrating UFS PHY,
start_serdes and polling PCS_ready_status are part of phy_power_on.
UFS PHY registers are retained after power collapse, meaning calibrating
UFS PHY, start_serdes and polling PCS_ready_status can be done only when
hba is powered_on, and not needed every time when phy_power_on is called
during resume. Hence keep the code which enables PHY's regulators & clks
in phy_power_on and move the rest steps into phy_calibrate function.
Since phy_power_on is separated out from phy calibrate, make separate calls
to phy_power_on and phy_calibrate calls from ufs qcom driver.
Also for better power saving, remove the phy_power_on/off calls from
resume/suspend path and put them to ufs_qcom_setup_clocks, so that
PHY's regulators & clks can be turned on/off along with UFS's clocks.
This patch series is tested on SM8550 QRD, SM8650 MTP , SM8750 MTP.
Note: Patch 1 of this series is a requirement for the rest of the PHY
patches for the functional dependency.
Changes in v4:
1. Addressed Dmitry's comment to update cover letter to mention patch1
as a requirement for the rest of the PHY patches.
2. Addressed Dmitry's comment to move parsing UFS PHY reset handle logic
to init from probe to avoid probe failure.
3. Addressed Dmitry's comment to update commit text to reflect reason
to remove qmp_ufs_com_init() (Patch 7 of current series)
4. Addrssed Konrad's comment to return failure from power up sequence when
phy_calibrate return failure and modify the debug print.
Changes in v3:
1. Addresed neil and bjorn comment to align the order of the patch to
maintain the bisectability compliance within the patch.
2. Addressed neil comment to move qmp_ufs_get_phy_reset() in a separate
patch, inline qmp_ufs_com_init() inline.
Changes in v2:
1. Addressed vinod koul and manivannan comment to split the phy patch
into multiple patches.
2. Addressed vinod's comment to reuse SW_PWRDN instead of creating
new macros SW_PWRUP in phy-qcom-qmp-ufs.c.
3. Addressed Konrad's comment to optimize mutex lock in ufs-qcom.c
4. Addressed konrad and Manivannan comment to clean debug print in
ufs-qcom.c
Nitin Rawat (11):
scsi: ufs: qcom: add a new phy calibrate API call
phy: qcom-qmp-ufs: Rename qmp_ufs_enable and qmp_ufs_power_on
phy: qcom-qmp-ufs: Refactor phy_power_on and phy_calibrate callbacks
phy: qcom-qmp-ufs: Refactor UFS PHY reset
phy: qcom-qmp-ufs: Remove qmp_ufs_com_init()
phy: qcom-qmp-ufs: Rename qmp_ufs_power_off
phy: qcom-qmp-ufs: Remove qmp_ufs_exit() and Inline qmp_ufs_com_exit()
phy: qcom-qmp-ufs: refactor qmp_ufs_power_off
scsi: ufs: qcom : Refactor phy_power_on/off calls
scsi: ufs: qcom : Introduce phy_power_on/off wrapper function
scsi: ufs: qcom: Prevent calling phy_exit before phy_init
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 145 ++++++++----------------
drivers/ufs/host/ufs-qcom.c | 96 ++++++++++------
drivers/ufs/host/ufs-qcom.h | 4 +
3 files changed, 111 insertions(+), 134 deletions(-)
--
2.48.1
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next reply other threads:[~2025-05-03 16:25 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-03 16:24 Nitin Rawat [this message]
2025-05-03 16:24 ` [PATCH V4 01/11] scsi: ufs: qcom: add a new phy calibrate API call Nitin Rawat
2025-05-09 12:06 ` Konrad Dybcio
2025-05-03 16:24 ` [PATCH V4 02/11] phy: qcom-qmp-ufs: Rename qmp_ufs_enable and qmp_ufs_power_on Nitin Rawat
2025-05-03 16:24 ` [PATCH V4 03/11] phy: qcom-qmp-ufs: Refactor phy_power_on and phy_calibrate callbacks Nitin Rawat
2025-05-03 16:24 ` [PATCH V4 04/11] phy: qcom-qmp-ufs: Refactor UFS PHY reset Nitin Rawat
2025-05-04 15:27 ` Dmitry Baryshkov
2025-05-03 16:24 ` [PATCH V4 05/11] phy: qcom-qmp-ufs: Remove qmp_ufs_com_init() Nitin Rawat
2025-05-03 16:24 ` [PATCH V4 06/11] phy: qcom-qmp-ufs: Rename qmp_ufs_power_off Nitin Rawat
2025-05-04 15:37 ` Dmitry Baryshkov
2025-05-04 15:52 ` Nitin Rawat
2025-05-06 11:53 ` Dmitry Baryshkov
2025-05-07 15:05 ` Nitin Rawat
2025-05-04 15:57 ` Dmitry Baryshkov
2025-05-03 16:24 ` [PATCH V4 07/11] phy: qcom-qmp-ufs: Remove qmp_ufs_exit() and Inline qmp_ufs_com_exit() Nitin Rawat
2025-05-04 15:56 ` Dmitry Baryshkov
2025-05-03 16:24 ` [PATCH V4 08/11] phy: qcom-qmp-ufs: refactor qmp_ufs_power_off Nitin Rawat
2025-05-04 15:57 ` Dmitry Baryshkov
2025-05-03 16:24 ` [PATCH V4 09/11] scsi: ufs: qcom : Refactor phy_power_on/off calls Nitin Rawat
2025-05-09 11:35 ` Konrad Dybcio
2025-05-10 13:49 ` Nitin Rawat
2025-05-03 16:24 ` [PATCH V4 10/11] scsi: ufs: qcom : Introduce phy_power_on/off wrapper function Nitin Rawat
2025-05-09 11:37 ` Konrad Dybcio
2025-05-09 11:49 ` Nitin Rawat
2025-05-09 12:00 ` Konrad Dybcio
2025-05-13 13:12 ` Nitin Rawat
2025-05-03 16:24 ` [PATCH V4 11/11] scsi: ufs: qcom: Prevent calling phy_exit before phy_init Nitin Rawat
2025-05-09 11:38 ` Konrad Dybcio
2025-05-09 11:50 ` Nitin Rawat
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=20250503162440.2954-1-quic_nitirawa@quicinc.com \
--to=quic_nitirawa@quicinc.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=andersson@kernel.org \
--cc=bvanassche@acm.org \
--cc=kishon@kernel.org \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-scsi@vger.kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=martin.petersen@oracle.com \
--cc=neil.armstrong@linaro.org \
--cc=quic_cang@quicinc.com \
--cc=quic_rdwivedi@quicinc.com \
--cc=vkoul@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