aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/chipidea/udc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/chipidea/udc.c')
-rw-r--r--drivers/usb/chipidea/udc.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
index cf132f057137..f88e9157fad0 100644
--- a/drivers/usb/chipidea/udc.c
+++ b/drivers/usb/chipidea/udc.c
@@ -1725,7 +1725,6 @@ static int ci_udc_start(struct usb_gadget *gadget,
1725 struct usb_gadget_driver *driver) 1725 struct usb_gadget_driver *driver)
1726{ 1726{
1727 struct ci_hdrc *ci = container_of(gadget, struct ci_hdrc, gadget); 1727 struct ci_hdrc *ci = container_of(gadget, struct ci_hdrc, gadget);
1728 unsigned long flags;
1729 int retval = -ENOMEM; 1728 int retval = -ENOMEM;
1730 1729
1731 if (driver->disconnect == NULL) 1730 if (driver->disconnect == NULL)
@@ -1752,7 +1751,6 @@ static int ci_udc_start(struct usb_gadget *gadget,
1752 1751
1753 pm_runtime_get_sync(&ci->gadget.dev); 1752 pm_runtime_get_sync(&ci->gadget.dev);
1754 if (ci->vbus_active) { 1753 if (ci->vbus_active) {
1755 spin_lock_irqsave(&ci->lock, flags);
1756 hw_device_reset(ci); 1754 hw_device_reset(ci);
1757 } else { 1755 } else {
1758 usb_udc_vbus_handler(&ci->gadget, false); 1756 usb_udc_vbus_handler(&ci->gadget, false);
@@ -1761,7 +1759,6 @@ static int ci_udc_start(struct usb_gadget *gadget,
1761 } 1759 }
1762 1760
1763 retval = hw_device_state(ci, ci->ep0out->qh.dma); 1761 retval = hw_device_state(ci, ci->ep0out->qh.dma);
1764 spin_unlock_irqrestore(&ci->lock, flags);
1765 if (retval) 1762 if (retval)
1766 pm_runtime_put_sync(&ci->gadget.dev); 1763 pm_runtime_put_sync(&ci->gadget.dev);
1767 1764
@@ -1796,10 +1793,10 @@ static int ci_udc_stop(struct usb_gadget *gadget)
1796 1793
1797 if (ci->vbus_active) { 1794 if (ci->vbus_active) {
1798 hw_device_state(ci, 0); 1795 hw_device_state(ci, 0);
1796 spin_unlock_irqrestore(&ci->lock, flags);
1799 if (ci->platdata->notify_event) 1797 if (ci->platdata->notify_event)
1800 ci->platdata->notify_event(ci, 1798 ci->platdata->notify_event(ci,
1801 CI_HDRC_CONTROLLER_STOPPED_EVENT); 1799 CI_HDRC_CONTROLLER_STOPPED_EVENT);
1802 spin_unlock_irqrestore(&ci->lock, flags);
1803 _gadget_stop_activity(&ci->gadget); 1800 _gadget_stop_activity(&ci->gadget);
1804 spin_lock_irqsave(&ci->lock, flags); 1801 spin_lock_irqsave(&ci->lock, flags);
1805 pm_runtime_put(&ci->gadget.dev); 1802 pm_runtime_put(&ci->gadget.dev);