]> Pileus Git - ~andy/linux/blobdiff - drivers/usb/musb/musb_gadget.c
usb: musb: fix oops on musb_gadget_pullup
[~andy/linux] / drivers / usb / musb / musb_gadget.c
index b67a062f556bb65d56fead8404546dfcfb75f541..8c41a2e6ea7702e8906771d3bf5e7810ad412937 100644 (file)
@@ -1698,6 +1698,8 @@ static int musb_gadget_pullup(struct usb_gadget *gadget, int is_on)
 
        is_on = !!is_on;
 
+       pm_runtime_get_sync(musb->controller);
+
        /* NOTE: this assumes we are sensing vbus; we'd rather
         * not pullup unless the B-session is active.
         */
@@ -1707,6 +1709,9 @@ static int musb_gadget_pullup(struct usb_gadget *gadget, int is_on)
                musb_pullup(musb, is_on);
        }
        spin_unlock_irqrestore(&musb->lock, flags);
+
+       pm_runtime_put(musb->controller);
+
        return 0;
 }