|
@@ -1613,7 +1613,6 @@ __acquires(mEp->lock)
|
|
|
* @gadget: gadget
|
|
* @gadget: gadget
|
|
|
*
|
|
*
|
|
|
* This function returns an error code
|
|
* This function returns an error code
|
|
|
- * Caller must hold lock
|
|
|
|
|
*/
|
|
*/
|
|
|
static int _gadget_stop_activity(struct usb_gadget *gadget)
|
|
static int _gadget_stop_activity(struct usb_gadget *gadget)
|
|
|
{
|
|
{
|
|
@@ -2707,7 +2706,9 @@ static int ci13xxx_stop(struct usb_gadget_driver *driver)
|
|
|
if (udc->udc_driver->notify_event)
|
|
if (udc->udc_driver->notify_event)
|
|
|
udc->udc_driver->notify_event(udc,
|
|
udc->udc_driver->notify_event(udc,
|
|
|
CI13XXX_CONTROLLER_STOPPED_EVENT);
|
|
CI13XXX_CONTROLLER_STOPPED_EVENT);
|
|
|
|
|
+ spin_unlock_irqrestore(udc->lock, flags);
|
|
|
_gadget_stop_activity(&udc->gadget);
|
|
_gadget_stop_activity(&udc->gadget);
|
|
|
|
|
+ spin_lock_irqsave(udc->lock, flags);
|
|
|
pm_runtime_put(&udc->gadget.dev);
|
|
pm_runtime_put(&udc->gadget.dev);
|
|
|
}
|
|
}
|
|
|
|
|
|