Hi, > > On Wed, Feb 08, 2012 at 11:46:00AM +0530, Shubhrajyoti wrote: > > > On Wednesday 08 February 2012 09:56 AM, Ajay Kumar Gupta wrote: > > > > +static int dsps_musb_init(struct musb *musb) { > > > > + struct device *dev = musb->controller; > > > > + struct musb_hdrc_platform_data *plat = dev->platform_data; > > > > + struct platform_device *pdev = to_platform_device(dev- > >parent); > > > > + struct dsps_glue *glue = platform_get_drvdata(pdev); > > > > + const struct dsps_musb_wrapper *wrp = glue->wrp; > > > > + struct omap_musb_board_data *data = plat->board_data; > > > > + void __iomem *reg_base = musb->ctrl_base; > > > > + u32 rev, val; > > > > + int status; > > > > + > > > > + /* mentor core register starts at offset of 0x400 from musb > base > > */ > > > > + musb->mregs += wrp->musb_core_offset; > > > > + > > > > + /* NOP driver needs change if supporting dual instance */ > > > > + usb_nop_xceiv_register(); > > > > + musb->xceiv = otg_get_transceiver(); > > > > + if (!musb->xceiv) > > > > + return -ENODEV; > > > > + > > > > + status = pm_runtime_get_sync(dev); > > > > + if (status < 0) { > > > > + dev_err(dev, "pm_runtime_get_sync FAILED"); > > > > + goto err0; > > > > + } > > > So you are doing a get_sync at init and you cut the clocks at exit > > only. > > > Any particular reason for that. > > This is a platform glue layer and main io paths are in > musb_core.c/musb_host.c > and musb_gadget.c. Host controller driver's bus_suspend/resume are in > musb_host.c. > > What specific pm implementation are you looking for? The current patch calls pm_runtime_get_sync() for musb "device" and that is anyway getting done in common core file musb_core.c. Glue layer file need to call pm_runtime_get_sync() and x_put() for glue "device" during init and exit. I will resubmit this patch with above change. Ajay > > Ajay > > > > that's a very good question. We're just adding a brand new file, which > > is clean and stuff... so we might as well start with good PM > > capabilities. > > > > -- > > balbi > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html