Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

clk: qcom: gcc-sc8180x: Use retention for USB power domains

The USB subsystem does not expect to lose its state on suspend:

xhci-hcd xhci-hcd.0.auto: xHC error in resume, USBSTS 0x401, Reinit
usb usb1: root hub lost power or was reset

(The reinitialization usually succeeds, but it does slow down resume.)

To maintain state during suspend, the relevant GDSCs need to stay in
retention mode, like they do on other similar SoCs. Change the mode to
PWRSTS_RET_ON to fix.

Fixes: 4433594bbe5d ("clk: qcom: gcc: Add global clock controller driver for SC8180x")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Val Packett <val@packett.cool>
Link: https://lore.kernel.org/r/20260312112321.370983-4-val@packett.cool
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Val Packett and committed by
Bjorn Andersson
25bc96f2 3565741e

+3 -3
+3 -3
drivers/clk/qcom/gcc-sc8180x.c
··· 4172 4172 .pd = { 4173 4173 .name = "usb30_sec_gdsc", 4174 4174 }, 4175 - .pwrsts = PWRSTS_OFF_ON, 4175 + .pwrsts = PWRSTS_RET_ON, 4176 4176 .flags = POLL_CFG_GDSCR, 4177 4177 }; 4178 4178 ··· 4190 4190 .pd = { 4191 4191 .name = "usb30_prim_gdsc", 4192 4192 }, 4193 - .pwrsts = PWRSTS_OFF_ON, 4193 + .pwrsts = PWRSTS_RET_ON, 4194 4194 .flags = POLL_CFG_GDSCR, 4195 4195 }; 4196 4196 ··· 4262 4262 .pd = { 4263 4263 .name = "usb30_mp_gdsc", 4264 4264 }, 4265 - .pwrsts = PWRSTS_OFF_ON, 4265 + .pwrsts = PWRSTS_RET_ON, 4266 4266 .flags = POLL_CFG_GDSCR, 4267 4267 }; 4268 4268