Re: Question about suspend/resume clock handling in dwc3-of-simple.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Guenter,

Guenter Roeck <linux@xxxxxxxxxxxx> writes:
> Hi folks,
>
> In dwc3-of-simple.c:dwc3_of_simple_remove(), I see the following code.
>
> 	for (i = 0; i < simple->num_clocks; i++) {
>                 clk_unprepare(simple->clks[i]);
> 		clk_put(simple->clks[i]);
> 	}
>
> What I don't understand is why clk_unprepare() is called instead
> of clk_disable_unprepare(). Someone told me that it was due to
> dwc3_of_simple_runtime_suspend(), which would call clk_disable().

good eyes :-) That was fixed though:

https://marc.info/?l=linux-usb&m=147343692631868&w=2

> Should it be clk_disable_unprepare(), or maybe something like the
> following
>
> 	if (!pm_runtime_status_suspended(dev))
> 		clk_disable_unprepare();
> 	else
> 		clk_unprepare();

I'm not sure how balanced those calls are, yeah. I don't have HW to test
PM with. But note that as it is, there is no actual runtime PM support,
so clk_disable_unprepare() will always be necessary.

Perhaps we will find further issues when someone tries to use runtime PM
with dwc3-of-simple. ;-)

-- 
balbi

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux