usb: dwc3: gadget: release spin lock during gadget resume

It's a requirement that we release controller's lock
while calling gadget API function pointers. This
patch just fixes that long standing bug.

Signed-off-by: Jiebing Li <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
This commit is contained in:
Jiebing Li 2014-12-11 13:26:29 +08:00 • committed by Felipe Balbi
commit ad14d4e030

View file

@ -2487,7 +2487,11 @@ static void dwc3_gadget_wakeup_interrupt(struct dwc3 *dwc)
* implemented.
*/
dwc->gadget_driver->resume(&dwc->gadget);
if (dwc->gadget_driver && dwc->gadget_driver->resume) {
spin_unlock(&dwc->lock);
dwc->gadget_driver->resume(&dwc->gadget);
spin_lock(&dwc->lock);
}
}
static void dwc3_gadget_linksts_change_interrupt(struct dwc3 *dwc,