usb: dwc2: gadget: rework disconnect event handling
authorMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 21 Nov 2014 14:14:47 +0000 (15:14 +0100)
committerFelipe Balbi <balbi@ti.com>
Fri, 21 Nov 2014 15:07:34 +0000 (09:07 -0600)
commit4ace06e8b3c32d6a601474af31580bbc1027fa9f
tree387a8e26a4c04d001676e1b14a1539a48d919875
parented692a99f31c92ec649ee2f7a0ecb4aa0f69d853
usb: dwc2: gadget: rework disconnect event handling

This patch adds a call to s3c_hsotg_disconnect() from 'end session'
interrupt (GOTGINT_SES_END_DET) to correctly notify gadget subsystem
about unplugged usb cable. DISCONNINT interrupt cannot be used for this
purpose, because it is asserted only in host mode.

To avoid reporting disconnect event more than once, a disconnect call has
been moved from USB_REQ_SET_ADDRESS handling function to SESSREQINT
interrupt. This way driver ensures that disconnect event is reported
either when usb cable is unplugged or every time the host starts a new
session. To handle devices which has been synthesized without
SRP support, connected state is set in ENUMDONE interrupt.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Paul Zimmerman <paulz@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc2/core.h
drivers/usb/dwc2/core_intr.c
drivers/usb/dwc2/gadget.c