diff options
author | Felipe Balbi <balbi@ti.com> | 2014-11-06 01:27:53 -0500 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2014-11-10 18:19:34 -0500 |
commit | 8e74475b0e0ac2fd3634f3c1b9a109fb1d6269f7 (patch) | |
tree | fa867ac1952492503f54f6d8ed9dde64a35fedcf /drivers/usb/dwc3 | |
parent | 6876d58f2f0548ce130b388c323eed17dc5d8689 (diff) |
usb: dwc3: gadget: use udc-core's reset notifier
Replace usb_gadget_driver's disconnect with udc-core's reset notifier at
bus reset handler.
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3')
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 398c12f5efe3..f03b136ecfce 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c | |||
@@ -2041,6 +2041,17 @@ static void dwc3_resume_gadget(struct dwc3 *dwc) | |||
2041 | if (dwc->gadget_driver && dwc->gadget_driver->resume) { | 2041 | if (dwc->gadget_driver && dwc->gadget_driver->resume) { |
2042 | spin_unlock(&dwc->lock); | 2042 | spin_unlock(&dwc->lock); |
2043 | dwc->gadget_driver->resume(&dwc->gadget); | 2043 | dwc->gadget_driver->resume(&dwc->gadget); |
2044 | } | ||
2045 | } | ||
2046 | |||
2047 | static void dwc3_reset_gadget(struct dwc3 *dwc) | ||
2048 | { | ||
2049 | if (!dwc->gadget_driver) | ||
2050 | return; | ||
2051 | |||
2052 | if (dwc->gadget.speed != USB_SPEED_UNKNOWN) { | ||
2053 | spin_unlock(&dwc->lock); | ||
2054 | usb_gadget_udc_reset(&dwc->gadget, dwc->gadget_driver); | ||
2044 | spin_lock(&dwc->lock); | 2055 | spin_lock(&dwc->lock); |
2045 | } | 2056 | } |
2046 | } | 2057 | } |
@@ -2185,11 +2196,7 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc) | |||
2185 | dwc3_gadget_disconnect_interrupt(dwc); | 2196 | dwc3_gadget_disconnect_interrupt(dwc); |
2186 | } | 2197 | } |
2187 | 2198 | ||
2188 | /* after reset -> Default State */ | 2199 | dwc3_reset_gadget(dwc); |
2189 | usb_gadget_set_state(&dwc->gadget, USB_STATE_DEFAULT); | ||
2190 | |||
2191 | if (dwc->gadget.speed != USB_SPEED_UNKNOWN) | ||
2192 | dwc3_disconnect_gadget(dwc); | ||
2193 | 2200 | ||
2194 | reg = dwc3_readl(dwc->regs, DWC3_DCTL); | 2201 | reg = dwc3_readl(dwc->regs, DWC3_DCTL); |
2195 | reg &= ~DWC3_DCTL_TSTCTRL_MASK; | 2202 | reg &= ~DWC3_DCTL_TSTCTRL_MASK; |