Messages in this thread | | | From | Felipe Balbi <> | Subject | Re: Question about suspend/resume clock handling in dwc3-of-simple.c | Date | Mon, 12 Sep 2016 22:05:00 +0300 |
| |
Hi Guenter,
Guenter Roeck <linux@roeck-us.net> 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 [unhandled content-type:application/pgp-signature]
| |