dwc_otg: fiq_fsm: pause when cancelling split transactions
authorJonathan Bell <jonathan@raspberrypi.org>
Wed, 8 Jan 2020 12:48:09 +0000 (12:48 +0000)
committerPhil Elwell <pelwell@users.noreply.github.com>
Mon, 13 Jan 2020 17:31:35 +0000 (17:31 +0000)
commit301ec88e28eb8924e827e60020ab513e60fb7085
tree25c47d36e09068ab7881fa2afd0456e3b5be5a35
parentdd1494a4c54ed0bd8c1225457216ebad9467e5a7
dwc_otg: fiq_fsm: pause when cancelling split transactions

Non-periodic splits will DMA to/from the driver-provided transfer_buffer,
which may be freed immediately after the dequeue call returns. Block until
we know the transfer is complete.

A similar delay is needed when cleaning up disconnects, as the FIQ could
have started a periodic transfer in the previous microframe to the one
that triggered a disconnect.

Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
drivers/usb/host/dwc_otg/dwc_otg_hcd.c
drivers/usb/host/dwc_otg/dwc_otg_os_dep.h