On Fri, Apr 29, 2011 at 04:17:35PM +0300, Jarkko Nikula wrote: > If cable is not connected to peripheral only board when initializing the > gadget driver, then runtime pm calls are out-of-sync and the musb cannot > idle with omap2430.c. This was noted on Nokia N900 where musb prevented the > CPU to be able to enter deeper retention idle state. > > This was working in 2.6.38 before runtime pm conversions but there musb > smart standby/idle modes were configured statically where they are now > updated runtime depending on use and cable status. > > Reason for out-of-sync is that runtime pm is activated in function > musb_gadget.c: usb_gadget_probe_driver but suspended only in OTG mode if > cable is not connected when initializing. In peripheral only mode this leads > to out-of-sync runtime pm since runtime pm remain active and is activated > another time in omap2430.c: musb_otg_notifications for VBUS Connect event > and thus cannot suspend for VBUS Disconnect event since the use count remains > active. > > Fix this by moving cable status check and pm_runtime_put call in > usb_gadget_probe_driver out of is_otg_enabled block. > > Signed-off-by: Jarkko Nikula <jhnikula@xxxxxxxxx> applied, thanks -- 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