On Mon, Jan 28, 2013 at 05:12:26PM +0530, Vivek Gautam wrote: > The current code in the dwc3 probe effectively disables runtime pm > from ever working because it calls a get() that was never put() until > device removal. Change the runtime pm code to match the standard > formula and allow runtime pm to function. > > Note that this doesn't enable full runtime pm on the DWC3 device in > that the port isn't put into a lower power mode when not used. > However it does allow users of dwc3 (like dwc3-exynos) to do some > amount of runtime power management. > > Signed-off-by: Vivek Gautam <gautam.vivek@xxxxxxxxxxx> > Signed-off-by: Doug Anderson <dianders@xxxxxxxxxxxx> > --- > drivers/usb/dwc3/core.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 3a4004a..59c2494 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -453,6 +453,7 @@ static int dwc3_probe(struct platform_device *pdev) > if (of_get_property(node, "tx-fifo-resize", NULL)) > dwc->needs_fifo_resize = true; > > + pm_runtime_set_active(dev); this usage of pm_runtime_set_active() actually makes me a bit scared. At least OMAP starts with the device switched off, so this will probably break OMAP at least. OTOH, calling ->runtime_resume() during probe() might not make that much sense after all, but the way OMAP is implemented, we won't get clocks turned on if this ->runtime_resume() method isn't called. /me starts to wonder whether OMAP implementation is flakey and what should be done here... -- balbi
Attachment:
signature.asc
Description: Digital signature