|
@@ -2083,9 +2083,12 @@ __acquires(musb->lock)
|
|
|
: NULL
|
|
|
);
|
|
|
|
|
|
- /* report disconnect, if we didn't already (flushing EP state) */
|
|
|
- if (musb->g.speed != USB_SPEED_UNKNOWN)
|
|
|
- musb_g_disconnect(musb);
|
|
|
+ /* report reset, if we didn't already (flushing EP state) */
|
|
|
+ if (musb->gadget_driver && musb->g.speed != USB_SPEED_UNKNOWN) {
|
|
|
+ spin_unlock(&musb->lock);
|
|
|
+ usb_gadget_udc_reset(&musb->g, musb->gadget_driver);
|
|
|
+ spin_lock(&musb->lock);
|
|
|
+ }
|
|
|
|
|
|
/* clear HR */
|
|
|
else if (devctl & MUSB_DEVCTL_HR)
|