usb: dwc3: gadget: Allow restarting a transfer
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Tue, 29 Sep 2020 07:18:48 +0000 (00:18 -0700)
committerFelipe Balbi <balbi@kernel.org>
Fri, 2 Oct 2020 06:57:46 +0000 (09:57 +0300)
commitd72ecc08dee49cc0b032a74c7efabab877f5c3fa
treef9a5aea41c61362988e83b18396ae97a145ab9c4
parenta73abc28ce67989ebf881f33961d9dec9c7522b9
usb: dwc3: gadget: Allow restarting a transfer

It's possible that there's no new TRBs prepared when kicking a transfer.
This happens when we need to stop and restart a transfer such as in the
case of reinitiating a stream or retrying isoc transfer. For streams,
sometime host may reject a stream and the device may need to reinitiate
that stream by stopping and restarting a transfer. In this case, all the
TRBs may have already been prepared. Allow the function
__dwc3_gadget_kick_transfer() to go through even though there's no new
TRB.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
drivers/usb/dwc3/gadget.c