usb: dwc3: gadget: Properly handle failed kick_transfer
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Sun, 29 Mar 2020 23:12:57 +0000 (16:12 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2020 15:50:23 +0000 (17:50 +0200)
commitb14b7359535d84ed88d97c18df76589d01146882
treeb0daa9e9356ad73be6883f7076f72fffbb56f967
parent1bfa0914728229f332478a0ba9f60a92f0dca046
usb: dwc3: gadget: Properly handle failed kick_transfer

[ Upstream commit 8d99087c2db863c5fa3a4a1f3cb82b3a493705ca ]

If dwc3 fails to issue START_TRANSFER/UPDATE_TRANSFER command, then we
should properly end an active transfer and give back all the started
requests. However if it's for an isoc endpoint, the failure maybe due to
bus-expiry status. In this case, don't give back the requests and wait
for the next retry.

Fixes: 72246da40f37 ("usb: Introduce DesignWare USB3 DRD Driver")
Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/dwc3/gadget.c