dwc3: gadget: Remove disabling events and ep0 from gadget stop

Controller driver explicitly puts the controller in low power mode
when cable disconnected. However, due to config-fs and ADB design
which unbinds composition on every cable disconnect results in
detaching/stopping gadget driver on every cable disconnect. Gadget
stop will explicitly brings the controller out of low power mode to
disable events and ep0 which is not necessary as controller is
already in low power mode. These operations are not required for
composition switch as well because gadget pull-up call back will
take care of that. Hence, Remove disabling events and ep0 from stop
gadget callback.

Change-Id: If2b3e241076a4e0eeb87eeb4361398313fca6962
Signed-off-by: Vamsi Krishna Samavedam <vskrishn@codeaurora.org>
This commit is contained in:
Vamsi Krishna Samavedam 2016-11-01 17:31:59 -07:00
parent 9a5e4de102
commit 5c57c9e196

View file

@ -2130,24 +2130,11 @@ static int dwc3_gadget_stop(struct usb_gadget *g)
struct dwc3 *dwc = gadget_to_dwc(g); struct dwc3 *dwc = gadget_to_dwc(g);
unsigned long flags; unsigned long flags;
pm_runtime_get_sync(dwc->dev);
dbg_event(0xFF, "Stop gsync",
atomic_read(&dwc->dev->power.usage_count));
dwc3_gadget_disable_irq(dwc);
spin_lock_irqsave(&dwc->lock, flags); spin_lock_irqsave(&dwc->lock, flags);
__dwc3_gadget_ep_disable(dwc->eps[0]);
__dwc3_gadget_ep_disable(dwc->eps[1]);
dwc->gadget_driver = NULL; dwc->gadget_driver = NULL;
spin_unlock_irqrestore(&dwc->lock, flags); spin_unlock_irqrestore(&dwc->lock, flags);
pm_runtime_mark_last_busy(dwc->dev);
pm_runtime_put_autosuspend(dwc->dev);
dbg_event(0xFF, "Auto_susgsync", 0);
return 0; return 0;
} }