usb: dwc3: ep0: increment "actual" on bounced ep0 case
authorFelipe Balbi <balbi@ti.com>
Wed, 21 Mar 2012 09:44:00 +0000 (11:44 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 11 May 2012 12:14:15 +0000 (13:14 +0100)
commit cd423dd3634a5232a3019eb372b144619a61cd16 upstream.

due to a HW limitation we have a bounce buffer for ep0
out transfers which are not aligned with MaxPacketSize.

On such case we were not increment r->actual as we should.

This patch fixes that mistake.

Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/dwc3/ep0.c

index 27bd50a..c0dcf69 100644 (file)
@@ -572,9 +572,10 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc,
                dwc->ep0_bounced = false;
        } else {
                transferred = ur->length - trb.length;
-               ur->actual += transferred;
        }
 
+       ur->actual += transferred;
+
        if ((epnum & 1) && ur->actual < ur->length) {
                /* for some reason we did not get everything out */