[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250610111019.osnrknvff7tlvrfz@umbar.lan>
Date: Tue, 10 Jun 2025 14:10:19 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
To: Krishna Kurapati <krishna.kurapati@....qualcomm.com>
Cc: Bjorn Andersson <andersson@...nel.org>,
Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>, linux-kernel@...r.kernel.org,
linux-clk@...r.kernel.org, linux-arm-msm@...r.kernel.org
Subject: Re: [PATCH] clk: qcom: sm8450: Enable retention for usb controller
gdsc
On Tue, Jun 10, 2025 at 02:52:53PM +0530, 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.
Could you please clarify, if there are other platforms which need this
change? Is there a chance of switching all of them in one patch set?
>
> 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
>
--
With best wishes
Dmitry
Powered by blists - more mailing lists