usb: musb: omap2430: turn off vbus on cable disconnect
authorGrazvydas Ignotas <notasas@gmail.com>
Tue, 26 Feb 2013 00:07:00 +0000 (02:07 +0200)
committerGrazvydas Ignotas <notasas@gmail.com>
Tue, 12 Mar 2013 21:45:56 +0000 (23:45 +0200)
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.

drivers/usb/musb/omap2430.c

index 74f2fb9..81f05f3 100644 (file)
@@ -264,6 +264,8 @@ static int musb_otg_notifications(struct notifier_block *nb,
        case USB_EVENT_NONE:
                dev_dbg(musb->controller, "VBUS Disconnect\n");
 
+               omap2430_musb_set_vbus(musb, 0);
+
                if (is_otg_enabled(musb) || is_peripheral_enabled(musb))
                        if (musb->gadget_driver) {
                                pm_runtime_mark_last_busy(musb->controller);