On Tue, Mar 12, 2013 at 3:37 PM, kishon <kishon@xxxxxx> wrote: > Hi, > > > On Sunday 10 March 2013 06:38 AM, Grazvydas Ignotas wrote: >> >> On USB_EVENT_ID event the musb glue enables VBUS by calling >> omap2430_musb_set_vbus(musb, 1) that sets the session bit, but on >> USB_EVENT_NONE reverse action is never made, and that breaks PM. >> >> Disable VBUS unconditionally on USB_EVENT_NONE to be sure musb >> session is ended on cable unplug so that PM works. >> >> Signed-off-by: Grazvydas Ignotas <notasas@xxxxxxxxx> >> --- >> drivers/usb/musb/omap2430.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c >> index 2a39c11..d430677 100644 >> --- a/drivers/usb/musb/omap2430.c >> +++ b/drivers/usb/musb/omap2430.c >> @@ -296,6 +296,7 @@ static void omap_musb_set_mailbox(struct omap2430_glue >> *glue) >> pm_runtime_put_autosuspend(dev); >> } >> >> + omap2430_musb_set_vbus(musb, 0); >> if (data->interface_type == MUSB_INTERFACE_UTMI) { >> if (musb->xceiv->otg->set_vbus) >> otg_set_vbus(musb->xceiv->otg, 0); > > Shouldn't this otg_set_vbus be done inside omap2430_musb_set_vbus? Any idea > why they were doing this only for UTMI? I would think so too, there is otg_set_vbus() in omap2430_musb_set_vbus() for enable but not for disable. I don't know history of this code and didn't want to break existing functionality. > > Thanks > Kishon -- Gražvydas -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html