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)
committerFelipe Balbi <balbi@ti.com>
Tue, 10 Apr 2012 09:21:44 +0000 (12:21 +0300)
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.

Cc: stable@vger.kernel.org
Signed-off-by: Felipe Balbi <balbi@ti.com>

drivers/usb/dwc3/ep0.c

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