[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250610092253.2998351-1-krishna.kurapati@oss.qualcomm.com>
Date: Tue, 10 Jun 2025 14:52:53 +0530
From: Krishna Kurapati <krishna.kurapati@....qualcomm.com>
To: Bjorn Andersson <andersson@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-clk@...r.kernel.org,
linux-arm-msm@...r.kernel.org,
Krishna Kurapati <krishna.kurapati@....qualcomm.com>
Subject: [PATCH] clk: qcom: sm8450: Enable retention for usb controller gdsc
When USB controller enters runtime suspend while operating in host
mode, then wakeup because of cable disconnect or a button press of
a headset causes the following kind of errors:
Error after button press on a connected headset :
[ 355.309260] usb 1-1: reset full-speed USB device number 2 using xhci-hcd
[ 355.725844] usb 1-1: device not accepting address 2, error -108
Error on removal of headset device from usb port:
[ 157.563136] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402
,iova=0xd65504710, fsynr=0x100011, cbfrsynra=0x0, cb=6
[ 157.574842] arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF],
SID=0x0
[ 157.582181] arm-smmu 15000000.iommu: FSYNR0 = 00100011 [S1CBNDX=16 WNR
PLVL=1]
[ 157.589610] xhci-hcd xhci-hcd.0.auto: WARNING: Host Controller Error
[ 157.596197] xhci-hcd xhci-hcd.0.auto: WARNING: Host Controller Error
Enabling retention on usb controller GDSC fixes the above issues.
Signed-off-by: Krishna Kurapati <krishna.kurapati@....qualcomm.com>
---
Note:
The above mentioned issues pop up after I enabled runtime suspend after
applying [1].
[1]: https://lore.kernel.org/all/20250610091357.2983085-1-krishna.kurapati@oss.qualcomm.com/
drivers/clk/qcom/gcc-sm8450.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/gcc-sm8450.c b/drivers/clk/qcom/gcc-sm8450.c
index 65d7d52bce03..f94da4a1c921 100644
--- a/drivers/clk/qcom/gcc-sm8450.c
+++ b/drivers/clk/qcom/gcc-sm8450.c
@@ -3141,7 +3141,7 @@ static struct gdsc usb30_prim_gdsc = {
.pd = {
.name = "usb30_prim_gdsc",
},
- .pwrsts = PWRSTS_OFF_ON,
+ .pwrsts = PWRSTS_RET_ON,
};
static struct clk_regmap *gcc_sm8450_clocks[] = {
--
2.34.1
Powered by blists - more mailing lists