usb: dwc3: gadget: make to increment req->remaining in all cases
Sometimes, we might get a completion for a TRB which is left with HWO bit. Even in these cases, we should increment req->remaining to properly report total transferred size. I noticed this while debuggin a separate problem seen with MSC tests from USBCV. Sometimes we would erroneously report a completion for a 512-byte transfer when, in reality, we transferred 0 bytes. Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
ef5e2fa9f6
commit
35b2719e72
1 changed files with 3 additions and 3 deletions
|
@ -2189,12 +2189,12 @@ static int __dwc3_cleanup_done_trbs(struct dwc3 *dwc, struct dwc3_ep *dep,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((trb->ctrl & DWC3_TRB_CTRL_HWO) && status != -ESHUTDOWN)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
count = trb->size & DWC3_TRB_SIZE_MASK;
|
count = trb->size & DWC3_TRB_SIZE_MASK;
|
||||||
req->remaining += count;
|
req->remaining += count;
|
||||||
|
|
||||||
|
if ((trb->ctrl & DWC3_TRB_CTRL_HWO) && status != -ESHUTDOWN)
|
||||||
|
return 1;
|
||||||
|
|
||||||
if (dep->direction) {
|
if (dep->direction) {
|
||||||
if (count) {
|
if (count) {
|
||||||
trb_status = DWC3_TRB_SIZE_TRBSTS(trb->size);
|
trb_status = DWC3_TRB_SIZE_TRBSTS(trb->size);
|
||||||
|
|
Loading…
Add table
Reference in a new issue