mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-05 06:08:22 +00:00
usb: dwc3: clean TRB if STARTTRANSFER fail
In case STARTTRANSFER will fail, clean TRB. Seems HW in such case don't clean HWO bit. So, without this cleanup prev_trb still have HWO bit set. In my case (without patch), after first START failed: - dep->enqueue == 1 - dep->dequeue == 1 - prev_trb still have HWO set - left_trb() == 0 No way to send more data. Signed-off-by: Janusz Dziedzic <januszx.dziedzic@linux.intel.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
8ab89da4c2
commit
ce3fc8b329
1 changed files with 2 additions and 0 deletions
|
@ -1084,6 +1084,8 @@ static int __dwc3_gadget_kick_transfer(struct dwc3_ep *dep, u16 cmd_param)
|
|||
* here and stop, unmap, free and del each of the linked
|
||||
* requests instead of what we do now.
|
||||
*/
|
||||
if (req->trb)
|
||||
memset(req->trb, 0, sizeof(struct dwc3_trb));
|
||||
dep->queued_requests--;
|
||||
dwc3_gadget_giveback(dep, req, ret);
|
||||
return ret;
|
||||
|
|
Loading…
Add table
Reference in a new issue