On Wed, Aug 10, 2011 at 10:01 PM, Todd Poynor <toddpoynor@xxxxxxxxxx> wrote: > On Tue, Aug 09, 2011 at 07:45:09PM +0530, Keshava Munegowda wrote: >> From: Keshava Munegowda <Keshava_mgowda@xxxxxx> >> >> The usbhs core driver does not enable/disable the intefrace and > > > typo: interface > >> fucntional clocks; These clocks are handled by hwmod and runtime pm, > > > typo: functional > >> hence insted of the clock enable/disable, the runtime pm APIS are >> used. however,the port clocks are handled by the usbhs core. >> >> Signed-off-by: Keshava Munegowda <keshava_mgowda@xxxxxx> > > ... >> @@ -913,12 +598,15 @@ static int usbhs_enable(struct device *dev) >> (pdata->ehci_data->reset_gpio_port[1], 1); >> } >> >> -end_count: >> - omap->count++; >> + pm_runtime_put_sync(dev); >> spin_unlock_irqrestore(&omap->lock, flags); > > Is pm_runtime_irq_safe() needed (else I think runtime PM callbacks may > re-enable IRQs... or there's the new *_suspend runtime PM calls that > may avoid this)? pm_runtime_irq_safe() is not required; usbhs does not have a parent and it is the parent driver of ehci and ohci drivers. > > ... >> @@ -266,10 +261,12 @@ static int ehci_hcd_omap_remove(struct platform_device *pdev) >> struct usb_hcd *hcd = dev_get_drvdata(dev); >> >> usb_remove_hcd(hcd); >> - omap_usbhs_disable(dev); >> disable_put_regulator(dev->platform_data); >> - iounmap(hcd->regs); >> usb_put_hcd(hcd); >> + iounmap(hcd->regs); yes , I will do this. > > > usb_put_hcd may release the hcd, needs to be after the deref for > iounmap. > >> + pm_runtime_put_sync(dev); >> + pm_runtime_disable(dev); > > > Todd > -- 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