]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.3-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Apr 2012 22:37:32 +0000 (15:37 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Apr 2012 22:37:32 +0000 (15:37 -0700)
added patches:
usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch

queue-3.3/series
queue-3.3/usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch [new file with mode: 0644]

index 3ab358a3f93aa6a7417b5865549d0eaca5b698da..65baf85f3d03861323615ea7c58455bc986cbe7d 100644 (file)
@@ -60,3 +60,4 @@ ocfs-rl_used-breakage-on-big-endian.patch
 ocfs2-rl_count-endianness-breakage.patch
 ocfs2-e_leaf_clusters-endianness-breakage.patch
 lockd-fix-the-endianness-bug.patch
+usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch
diff --git a/queue-3.3/usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch b/queue-3.3/usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch
new file mode 100644 (file)
index 0000000..4b82936
--- /dev/null
@@ -0,0 +1,37 @@
+From cd423dd3634a5232a3019eb372b144619a61cd16 Mon Sep 17 00:00:00 2001
+From: Felipe Balbi <balbi@ti.com>
+Date: Wed, 21 Mar 2012 11:44:00 +0200
+Subject: usb: dwc3: ep0: increment "actual" on bounced ep0 case
+
+From: Felipe Balbi <balbi@ti.com>
+
+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>
+
+---
+ drivers/usb/dwc3/ep0.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/dwc3/ep0.c
++++ b/drivers/usb/dwc3/ep0.c
+@@ -583,9 +583,10 @@ static void dwc3_ep0_complete_data(struc
+               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 */