usb: chipidea: Drop lock across event_notify during gadget stop
The CI_HDRC_CONTROLLER_STOPPED_EVENT may want to call sleeping APIs similar to how _gadget_stop_activity() may. Let's drop the lock across the event so that glue drivers can make sleeping calls. Cc: Peter Chen <peter.chen@nxp.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org> Signed-off-by: Peter Chen <peter.chen@nxp.com>
This commit is contained in:
parent
ed04f19f28
commit
afff6067b3
|
@ -1793,10 +1793,10 @@ static int ci_udc_stop(struct usb_gadget *gadget)
|
|||
|
||||
if (ci->vbus_active) {
|
||||
hw_device_state(ci, 0);
|
||||
spin_unlock_irqrestore(&ci->lock, flags);
|
||||
if (ci->platdata->notify_event)
|
||||
ci->platdata->notify_event(ci,
|
||||
CI_HDRC_CONTROLLER_STOPPED_EVENT);
|
||||
spin_unlock_irqrestore(&ci->lock, flags);
|
||||
_gadget_stop_activity(&ci->gadget);
|
||||
spin_lock_irqsave(&ci->lock, flags);
|
||||
pm_runtime_put(&ci->gadget.dev);
|
||||
|
|
Loading…
Reference in New Issue