Hi, On Wed, Nov 21, 2012 at 02:45:46PM +0200, Roger Quadros wrote: > >> spin_unlock_irqrestore(&tll->lock, flags); > >> > >> - return 0; > >> + return i; > >> } > >> +EXPORT_SYMBOL_GPL(omap_tll_enable); > >> > >> -static int usbtll_runtime_suspend(struct device *dev) > >> +int omap_tll_disable(void) > > > > why ?? Why are you actually dropping runtime PM from this driver ? have > > you tested PM transitions after applying this patch ? > > > > I'm not dropping runtime PM as such. Just separating enabling of channel > clocks from runtime PM (read enabling hwmod). The only user for this > driver is omap-usb-host.c via the omap_tll_enable/disable() calls. > > These calls still call pm_runtime_get/put() to enable the TLL hwmod. > > I have tested PM transitions on bus suspend/resume and modprobe/rmmod. > They still work fine. weird, I didn't see any dev_pm_ops being re-added to your platform_driver structure :-s On your original patch I see this: -static const struct dev_pm_ops usbtllomap_dev_pm_ops = { - SET_RUNTIME_PM_OPS(usbtll_runtime_suspend, - usbtll_runtime_resume, - NULL) -}; - -static struct platform_driver usbtll_omap_driver = { - .driver = { - .name = (char *)usbtll_driver_name, - .owner = THIS_MODULE, - .pm = &usbtllomap_dev_pm_ops, - }, - .probe = usbtll_omap_probe, - .remove = __devexit_p(usbtll_omap_remove), -}; but there is never anythying re-adding that dev_pm_ops, so runtime pm callbacks are literally dropped from this driver. If that's still fine, please make it clear on commit log. -- balbi
Attachment:
signature.asc
Description: Digital signature