Re: [PATCH] clk: qcom: sm8450: Enable retention for usb controller gdsc

From: neil . armstrong
Date: Tue Jun 10 2025 - 05:35:14 EST


On 10/06/2025 11:22, Krishna Kurapati wrote:
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@xxxxxxxxxxxxxxxx>
---

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@xxxxxxxxxxxxxxxx/

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[] = {

Reviewed-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>