public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH V3 0/9] Refactor phy powerup sequence
@ 2025-04-10  9:00 Nitin Rawat
  2025-04-10  9:00 ` [PATCH V3 1/9] scsi: ufs: qcom: add a new phy calibrate API call Nitin Rawat
                   ` (9 more replies)
  0 siblings, 10 replies; 37+ messages in thread
From: Nitin Rawat @ 2025-04-10  9:00 UTC (permalink / raw)
  To: vkoul, kishon, manivannan.sadhasivam, James.Bottomley,
	martin.petersen, bvanassche, bjorande, neil.armstrong,
	konrad.dybcio
  Cc: quic_rdwivedi, linux-arm-msm, linux-phy, linux-kernel, linux-scsi,
	Nitin Rawat

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.

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 (9):
  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: Refactor qmp_ufs_exit callback.
  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


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2025-04-23 13:52 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-10  9:00 [PATCH V3 0/9] Refactor phy powerup sequence Nitin Rawat
2025-04-10  9:00 ` [PATCH V3 1/9] scsi: ufs: qcom: add a new phy calibrate API call Nitin Rawat
2025-04-23 10:42   ` Konrad Dybcio
2025-04-23 11:01     ` Nitin Rawat
2025-04-10  9:00 ` [PATCH V3 2/9] phy: qcom-qmp-ufs: Rename qmp_ufs_enable and qmp_ufs_power_on Nitin Rawat
2025-04-10 20:05   ` Dmitry Baryshkov
2025-04-10  9:00 ` [PATCH V3 3/9] phy: qcom-qmp-ufs: Refactor phy_power_on and phy_calibrate callbacks Nitin Rawat
2025-04-10 20:06   ` Dmitry Baryshkov
2025-04-10  9:00 ` [PATCH V3 4/9] phy: qcom-qmp-ufs: Refactor UFS PHY reset Nitin Rawat
2025-04-10 20:08   ` Dmitry Baryshkov
2025-04-11 10:50     ` Nitin Rawat
2025-04-11 11:08       ` Dmitry Baryshkov
2025-04-14 20:34         ` Nitin Rawat
2025-04-15  9:29           ` Dmitry Baryshkov
2025-04-16  9:08             ` Nitin Rawat
2025-04-16 12:13               ` Dmitry Baryshkov
2025-04-16 12:26                 ` Nitin Rawat
2025-04-23 11:09                   ` Konrad Dybcio
2025-04-23 11:21                     ` Konrad Dybcio
2025-04-23 11:43                       ` Nitin Rawat
2025-04-23 13:47         ` Konrad Dybcio
2025-04-23 13:51           ` Dmitry Baryshkov
2025-04-10  9:00 ` [PATCH V3 5/9] phy: qcom-qmp-ufs: Remove qmp_ufs_com_init() Nitin Rawat
2025-04-10 20:09   ` Dmitry Baryshkov
2025-04-11 10:42     ` Nitin Rawat
2025-04-11 10:56       ` Dmitry Baryshkov
2025-04-14  7:28         ` Nitin Rawat
2025-04-14  7:43           ` Dmitry Baryshkov
2025-04-19 20:08             ` Nitin Rawat
2025-04-23 13:34               ` Dmitry Baryshkov
2025-04-10  9:00 ` [PATCH V3 6/9] phy: qcom-qmp-ufs: Refactor qmp_ufs_exit callback Nitin Rawat
2025-04-23 11:29   ` Konrad Dybcio
2025-04-10  9:01 ` [PATCH V3 7/9] scsi: ufs: qcom : Refactor phy_power_on/off calls Nitin Rawat
2025-04-10  9:01 ` [PATCH V3 8/9] scsi: ufs: qcom : Introduce phy_power_on/off wrapper function Nitin Rawat
2025-04-10  9:01 ` [PATCH V3 9/9] scsi: ufs: qcom: Prevent calling phy_exit before phy_init Nitin Rawat
2025-04-10 20:05 ` [PATCH V3 0/9] Refactor phy powerup sequence Dmitry Baryshkov
2025-04-11 10:35   ` Nitin Rawat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox