usb: dwc3: gadget: Continue handling EP0 xfercomplete events
authorWesley Cheng <quic_wcheng@quicinc.com>
Wed, 17 Aug 2022 18:23:54 +0000 (11:23 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Aug 2022 07:07:53 +0000 (09:07 +0200)
commitdff981842a0b1c05786c4c0cdea3ac80079ddd57
treed54d83bc5c740b6b93abc6d8d585ae099f95b2c3
parent9711c67de7482c81e1daca3548fbc5c9603600e3
usb: dwc3: gadget: Continue handling EP0 xfercomplete events

During soft disconnect, EP0 events are expected to be handled in order to
allow the controller to successfully move into the halted state.  Since
__dwc3_gadget_stop() is executed before polling, EP0 has been disabled, and
events are being blocked.  Allow xfercomplete events to be handled, so that
cached SETUP packets can be read out from the internal controller memory.

Without doing so, it will lead to endxfer timeouts, which results to
controller halt failures.

Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Link: https://lore.kernel.org/r/20220817182359.13550-5-quic_wcheng@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc3/gadget.c