Messages in this thread | | | Date | Mon, 19 Sep 2022 17:45:14 +0200 | From | Johan Hovold <> | Subject | Re: [PATCH v2 2/3] clk: qcom: gcc-sc7180: Update the .pwrsts for usb gdsc |
| |
On Fri, Sep 16, 2022 at 03:54:16PM +0530, Rajendra Nayak wrote: > The USB controller on sc7180 does not retain the state when > the system goes into low power state and the GDSC is > turned off. This results in the controller reinitializing and > re-enumerating all the connected devices (resulting in additional > delay while coming out of suspend) > Fix this by updating the .pwrsts for the USB GDSC so it only > transitions to retention state in low power. > > Signed-off-by: Rajendra Nayak <quic_rjendra@quicinc.com> > Reviewed-by: Matthias Kaehlcke <mka@chromium.org> > Tested-by: Matthias Kaehlcke <mka@chromium.org> > --- > v2: > Updated the changelog > > drivers/clk/qcom/gcc-sc7180.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/clk/qcom/gcc-sc7180.c b/drivers/clk/qcom/gcc-sc7180.c > index c2ea09945c47..2d3980251e78 100644 > --- a/drivers/clk/qcom/gcc-sc7180.c > +++ b/drivers/clk/qcom/gcc-sc7180.c > @@ -2224,7 +2224,7 @@ static struct gdsc usb30_prim_gdsc = { > .pd = { > .name = "usb30_prim_gdsc", > }, > - .pwrsts = PWRSTS_OFF_ON, > + .pwrsts = PWRSTS_RET_ON, > }; > > static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = {
It seems like the above will not work unless you also provide the registers offsets that gdsc_force_mem_on() expects.
Specifically, unless you set cxc_count for the GDSC, the above call is a no-op and the retention setting (i.e. the RETAIN_MEM and RETAIN_PERIPH bits) will not be updated when registering the GDSC.
Johan
| |