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)
committerpopcornmix <popcornmix@gmail.com>
Wed, 1 Jul 2020 15:33:16 +0000 (16:33 +0100)
commit9d71026b92ef695c1459e46d925dc402c2427eed
tree562ddba760b090db0a35730f71d38062e5039da6
parent8d19200e7fef32385dde3714965b99898c1f40fb
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