mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
54 lines
2.1 KiB
Diff
54 lines
2.1 KiB
Diff
From f3b0a25db969dc0caa17242ec783479276955d64 Mon Sep 17 00:00:00 2001
|
|
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|
Date: Thu, 7 Nov 2024 11:58:09 +0000
|
|
Subject: [PATCH] clk: qcom: gcc-sm8550: Keep UFS PHY GDSCs ALWAYS_ON
|
|
|
|
Starting from SM8550, UFS PHY GDSCs doesn't support hardware retention. So
|
|
using RETAIN_FF_ENABLE is wrong. Moreover, without ALWAYS_ON flag, GDSCs
|
|
will get powered down during suspend, causing the UFS PHY to loose its
|
|
state. And this will lead to below UFS error during resume as observed on
|
|
SM8550-QRD:
|
|
|
|
ufshcd-qcom 1d84000.ufs: ufshcd_uic_hibern8_exit: hibern8 exit failed. ret = 5
|
|
ufshcd-qcom 1d84000.ufs: __ufshcd_wl_resume: hibern8 exit failed 5
|
|
ufs_device_wlun 0:0:0:49488: ufshcd_wl_resume failed: 5
|
|
ufs_device_wlun 0:0:0:49488: PM: dpm_run_callback(): scsi_bus_resume+0x0/0x84 returns 5
|
|
ufs_device_wlun 0:0:0:49488: PM: failed to resume async: error 5
|
|
|
|
Cc: stable@vger.kernel.org # 6.8
|
|
Fixes: 1fe8273c8d40 ("clk: qcom: gcc-sm8550: Add the missing RETAIN_FF_ENABLE GDSC flag")
|
|
Reported-by: Neil Armstrong <neil.armstrong@linaro.org>
|
|
Suggested-by: Nitin Rawat <quic_nitirawa@quicinc.com>
|
|
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
|
|
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-HDK
|
|
---
|
|
drivers/clk/qcom/gcc-sm8550.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/clk/qcom/gcc-sm8550.c b/drivers/clk/qcom/gcc-sm8550.c
|
|
index 862a9bf73bcb..2803c085508b 100644
|
|
--- a/drivers/clk/qcom/gcc-sm8550.c
|
|
+++ b/drivers/clk/qcom/gcc-sm8550.c
|
|
@@ -3046,7 +3046,7 @@ static struct gdsc ufs_phy_gdsc = {
|
|
.name = "ufs_phy_gdsc",
|
|
},
|
|
.pwrsts = PWRSTS_OFF_ON,
|
|
- .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
|
|
+ .flags = POLL_CFG_GDSCR | ALWAYS_ON,
|
|
};
|
|
|
|
static struct gdsc ufs_mem_phy_gdsc = {
|
|
@@ -3055,7 +3055,7 @@ static struct gdsc ufs_mem_phy_gdsc = {
|
|
.name = "ufs_mem_phy_gdsc",
|
|
},
|
|
.pwrsts = PWRSTS_OFF_ON,
|
|
- .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE,
|
|
+ .flags = POLL_CFG_GDSCR | ALWAYS_ON,
|
|
};
|
|
|
|
static struct gdsc usb30_prim_gdsc = {
|
|
--
|
|
2.34.1
|
|
|