]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2017 07:55:50 +0000 (08:55 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2017 07:55:50 +0000 (08:55 +0100)
added patches:
revert-usb-gadget-composite-always-set-ep-mult-to-a.patch

queue-4.4/revert-usb-gadget-composite-always-set-ep-mult-to-a.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/revert-usb-gadget-composite-always-set-ep-mult-to-a.patch b/queue-4.4/revert-usb-gadget-composite-always-set-ep-mult-to-a.patch
new file mode 100644 (file)
index 0000000..aae4478
--- /dev/null
@@ -0,0 +1,55 @@
+From bb4c8316e09d3d44378c77a5868882d70e393e91 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Thu, 12 Jan 2017 08:54:43 +0100
+Subject: [PATCH] Revert "usb: gadget: composite: always set ep->mult to a
+ sensible value"
+
+This reverts commit c53af76d5de1af844a71e673ae4a02f1786c1b9c which is
+commit eaa496ffaaf19591fe471a36cef366146eeb9153 upstream as it was
+incorrect.
+
+Reported-by: Bin Liu <b-liu@ti.com>
+Cc: Felipe Balbi <balbi@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/composite.c          |    9 ++-------
+ drivers/usb/gadget/function/uvc_video.c |    2 +-
+ 2 files changed, 3 insertions(+), 8 deletions(-)
+
+--- a/drivers/usb/gadget/composite.c
++++ b/drivers/usb/gadget/composite.c
+@@ -148,12 +148,7 @@ ep_found:
+       _ep->desc = chosen_desc;
+       _ep->comp_desc = NULL;
+       _ep->maxburst = 0;
+-      _ep->mult = 1;
+-
+-      if (g->speed == USB_SPEED_HIGH && (usb_endpoint_xfer_isoc(_ep->desc) ||
+-                              usb_endpoint_xfer_int(_ep->desc)))
+-              _ep->mult = usb_endpoint_maxp(_ep->desc) & 0x7ff;
+-
++      _ep->mult = 0;
+       if (!want_comp_desc)
+               return 0;
+@@ -170,7 +165,7 @@ ep_found:
+               switch (usb_endpoint_type(_ep->desc)) {
+               case USB_ENDPOINT_XFER_ISOC:
+                       /* mult: bits 1:0 of bmAttributes */
+-                      _ep->mult = (comp_desc->bmAttributes & 0x3) + 1;
++                      _ep->mult = comp_desc->bmAttributes & 0x3;
+               case USB_ENDPOINT_XFER_BULK:
+               case USB_ENDPOINT_XFER_INT:
+                       _ep->maxburst = comp_desc->bMaxBurst + 1;
+--- a/drivers/usb/gadget/function/uvc_video.c
++++ b/drivers/usb/gadget/function/uvc_video.c
+@@ -243,7 +243,7 @@ uvc_video_alloc_requests(struct uvc_vide
+       req_size = video->ep->maxpacket
+                * max_t(unsigned int, video->ep->maxburst, 1)
+-               * (video->ep->mult);
++               * (video->ep->mult + 1);
+       for (i = 0; i < UVC_NUM_REQUESTS; ++i) {
+               video->req_buffer[i] = kmalloc(req_size, GFP_KERNEL);
index bf63146d773b64a0c1a133785a27f2825d4cae9e..ba36ffe17e3da3966fe267210ce72ec56b4d41d6 100644 (file)
@@ -99,3 +99,4 @@ net-vxge-avoid-unused-function-warnings.patch
 cx23885-dvb-move-initialization-of-a8293_pdata.patch
 drm-radeon-always-store-crtc-relative-radeon_crtc-cursor_x-y-values.patch
 tick-broadcast-prevent-null-pointer-dereference.patch
+revert-usb-gadget-composite-always-set-ep-mult-to-a.patch