linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V6 00/10] Refactor ufs phy powerup sequence
@ 2025-05-26 15:38 Nitin Rawat
  2025-05-26 15:38 ` [PATCH V6 01/10] scsi: ufs: qcom: Prevent calling phy_exit before phy_init Nitin Rawat
                   ` (11 more replies)
  0 siblings, 12 replies; 22+ messages in thread
From: Nitin Rawat @ 2025-05-26 15:38 UTC (permalink / raw)
  To: vkoul, kishon, manivannan.sadhasivam, James.Bottomley,
	martin.petersen, bvanassche, andersson, neil.armstrong,
	konrad.dybcio, dmitry.baryshkov
  Cc: quic_rdwivedi, quic_cang, 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.

Note: Patch 2 of this series is a requirement for the rest of the PHY
      patches(patch 3 - patch 9) for the functional dependency and
      Patch 1 is a fix for existing issues, which doesn't have any
      dependencies on any other changes.

Changes in v6:
1. Addressed Konrad's and Manivannan's comments to move patch11
   of v5 to start of the series so that it can be applied
   separately if needed.
2. Addessed manivannan's comment to improve commit text for few patch.
   and remove few trivial comments and minor code improvement.
3. Removed patch 10 (Introduce phy_power_on/off wrapper function)
   of last patchset as it is not needed.

Changes in v5:
1. Addressed Dmitry's comment to inline qmp_ufs_exit into
   qmp_ufs_power_off
2. Addrsssed Konrad's comment to improve code identation and updating
   kernel doc to update the info regarding controller and phy clocks
   being managed together.
3. Addrsssed Konrad's comment to update commit text for patch #10 to
   improve explanation to maintain separate ref_count in ufs controller
   driver.


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 (10):
  scsi: ufs: qcom: Prevent calling phy_exit before phy_init
  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

 drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 141 +++++++-----------------
 drivers/ufs/host/ufs-qcom.c             |  69 ++++++------
 2 files changed, 77 insertions(+), 133 deletions(-)

--
2.48.1


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

end of thread, other threads:[~2025-06-26  7:25 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-26 15:38 [PATCH V6 00/10] Refactor ufs phy powerup sequence Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 01/10] scsi: ufs: qcom: Prevent calling phy_exit before phy_init Nitin Rawat
2025-06-22 19:23   ` Abel Vesa
2025-05-26 15:38 ` [PATCH V6 02/10] scsi: ufs: qcom: add a new phy calibrate API call Nitin Rawat
2025-06-22 19:24   ` Abel Vesa
2025-05-26 15:38 ` [PATCH V6 03/10] phy: qcom-qmp-ufs: Rename qmp_ufs_enable and qmp_ufs_power_on Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 04/10] phy: qcom-qmp-ufs: Refactor phy_power_on and phy_calibrate callbacks Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 05/10] phy: qcom-qmp-ufs: Refactor UFS PHY reset Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 06/10] phy: qcom-qmp-ufs: Remove qmp_ufs_com_init() Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 07/10] phy: qcom-qmp-ufs: Rename qmp_ufs_power_off Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 08/10] phy: qcom-qmp-ufs: Remove qmp_ufs_exit() and Inline qmp_ufs_com_exit() Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 09/10] phy: qcom-qmp-ufs: refactor qmp_ufs_power_off Nitin Rawat
2025-05-26 15:38 ` [PATCH V6 10/10] scsi: ufs: qcom : Refactor phy_power_on/off calls Nitin Rawat
2025-06-19 13:53   ` Aishwarya
2025-06-20 14:25     ` Nitin Rawat
2025-06-20 21:44       ` Aishwarya
2025-06-21 17:15         ` Nitin Rawat
     [not found]           ` <CGME20250626072554eucas1p2ae35c30a96ab1ca61b6a3d6a970708ee@eucas1p2.samsung.com>
2025-06-26  7:25             ` Marek Szyprowski
2025-05-28  2:15 ` [PATCH V6 00/10] Refactor ufs phy powerup sequence Martin K. Petersen
2025-06-04  7:37   ` Nitin Rawat
2025-06-10  1:44     ` Martin K. Petersen
2025-06-15 16:52 ` (subset) " Vinod Koul

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).