* [PATCH] scsi: ufs: qcom: Power down UFS during system suspend on Milos
@ 2026-10-05 17:02 Alexander Koskovich
2026-10-09 20:30 ` Jorijn van der Graaf
2026-10-24 3:09 ` Martin K. Petersen
0 siblings, 2 replies; 3+ messages in thread
From: Alexander Koskovich @ 2026-10-05 17:02 UTC (permalink / raw)
To: Manivannan Sadhasivam, James E.J. Bottomley, Martin K. Petersen,
Abel Vesa, Konrad Dybcio, Luca Weiss, Bjorn Andersson,
Dmitry Baryshkov
Cc: linux-arm-msm, linux-scsi, linux-kernel, Alexander Koskovich
On Milos the UFS PHY GDSC is turned off on every system suspend and the
PHY loses its register state, so exiting hibern8 on resume fails:
ufshcd-qcom 1d84000.ufshc: pwr ctrl cmd 0x18 with (MIBattribute 0x0, mode 0x0) failed, host upmcrs:0x5
ufshcd-qcom 1d84000.ufshc: ufshcd_uic_hibern8_exit: hibern8 exit failed. ret = 5
ufshcd-qcom 1d84000.ufshc: __ufshcd_wl_resume: hibern8 exit failed 5
Set no_phy_retention so the controller and device are powered down
during system suspend and the link is brought up again on resume.
Fixes: 04bb37433330 ("arm64: dts: qcom: milos: Add UFS nodes")
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
---
drivers/ufs/host/ufs-qcom.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 7e6cb6dc42d1..e979850c05cb 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -3033,6 +3033,10 @@ static void ufs_qcom_remove(struct platform_device *pdev)
platform_device_msi_free_irqs_all(hba->dev);
}
+static const struct ufs_qcom_drvdata ufs_qcom_milos_drvdata = {
+ .no_phy_retention = true,
+};
+
static const struct ufs_qcom_drvdata ufs_qcom_sm8550_drvdata = {
.quirks = UFSHCD_QUIRK_BROKEN_LSDBS_CAP,
.no_phy_retention = true,
@@ -3044,6 +3048,7 @@ static const struct ufs_qcom_drvdata ufs_qcom_sa8255p_drvdata = {
static const struct of_device_id ufs_qcom_of_match[] __maybe_unused = {
{ .compatible = "qcom,ufshc" },
+ { .compatible = "qcom,milos-ufshc", .data = &ufs_qcom_milos_drvdata },
{ .compatible = "qcom,sm8550-ufshc", .data = &ufs_qcom_sm8550_drvdata },
{ .compatible = "qcom,sm8650-ufshc", .data = &ufs_qcom_sm8550_drvdata },
{ .compatible = "qcom,sa8255p-ufshc", .data = &ufs_qcom_sa8255p_drvdata },
---
base-commit: bf1ee2bd5c2da8992f33c8950ef194aaff74ed6c
change-id: 20261005-milos-ufs-suspend-7dd7439543a6
Best regards,
--
Alexander Koskovich <akoskovich@pm.me>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] scsi: ufs: qcom: Power down UFS during system suspend on Milos
2026-10-05 17:02 [PATCH] scsi: ufs: qcom: Power down UFS during system suspend on Milos Alexander Koskovich
@ 2026-10-09 20:30 ` Jorijn van der Graaf
2026-10-24 3:09 ` Martin K. Petersen
1 sibling, 0 replies; 3+ messages in thread
From: Jorijn van der Graaf @ 2026-10-09 20:30 UTC (permalink / raw)
To: Alexander Koskovich
Cc: Jorijn van der Graaf, Manivannan Sadhasivam,
James E.J. Bottomley, Martin K. Petersen, Abel Vesa,
Konrad Dybcio, Luca Weiss, Bjorn Andersson, Dmitry Baryshkov,
linux-arm-msm, linux-scsi, linux-kernel
On Mon, Oct 05, 2026 at 05:02:06PM +0000, Alexander Koskovich wrote:
> On Milos the UFS PHY GDSC is turned off on every system suspend and the
> PHY loses its register state, so exiting hibern8 on resume fails:
>
> ufshcd-qcom 1d84000.ufshc: pwr ctrl cmd 0x18 with (MIBattribute 0x0, mode 0x0) failed, host upmcrs:0x5
> ufshcd-qcom 1d84000.ufshc: ufshcd_uic_hibern8_exit: hibern8 exit failed. ret = 5
> ufshcd-qcom 1d84000.ufshc: __ufshcd_wl_resume: hibern8 exit failed 5
>
> Set no_phy_retention so the controller and device are powered down
> during system suspend and the link is brought up again on resume.
On the Fairphone (Gen. 6) which is also milos using 7.3/scsi-fixes (469fa055664b)
3 of 3 s2idle resumes fail hibern8 exit with the quoted lines above.
With the patch 5 s2idle and 10 deep suspend/resume cycles: no hibern8 exit failure
ufshcd_wl_resume 32-35 ms each, a 4 MiB fsync write succeeds after every resume.
Tested-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] scsi: ufs: qcom: Power down UFS during system suspend on Milos
2026-10-05 17:02 [PATCH] scsi: ufs: qcom: Power down UFS during system suspend on Milos Alexander Koskovich
2026-10-09 20:30 ` Jorijn van der Graaf
@ 2026-10-24 3:09 ` Martin K. Petersen
1 sibling, 0 replies; 3+ messages in thread
From: Martin K. Petersen @ 2026-10-24 3:09 UTC (permalink / raw)
To: Alexander Koskovich
Cc: Manivannan Sadhasivam, James E.J. Bottomley, Martin K. Petersen,
Abel Vesa, Konrad Dybcio, Luca Weiss, Bjorn Andersson,
Dmitry Baryshkov, linux-arm-msm, linux-scsi, linux-kernel
Alexander,
> On Milos the UFS PHY GDSC is turned off on every system suspend and
> the PHY loses its register state, so exiting hibern8 on resume fails:
Applied to 7.4/scsi-staging, thanks!
--
Martin K. Petersen
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-24 3:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-05 17:02 [PATCH] scsi: ufs: qcom: Power down UFS during system suspend on Milos Alexander Koskovich
2026-10-09 20:30 ` Jorijn van der Graaf
2026-10-24 3:09 ` Martin K. Petersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®