From 24d7a56fb436440cf5fe20a696062559bd6b27e5 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 12 Jan 2017 08:55:50 +0100 Subject: [PATCH] 4.4-stable patches added patches: revert-usb-gadget-composite-always-set-ep-mult-to-a.patch --- ...et-composite-always-set-ep-mult-to-a.patch | 55 +++++++++++++++++++ queue-4.4/series | 1 + 2 files changed, 56 insertions(+) create mode 100644 queue-4.4/revert-usb-gadget-composite-always-set-ep-mult-to-a.patch 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 index 00000000000..aae44788d56 --- /dev/null +++ b/queue-4.4/revert-usb-gadget-composite-always-set-ep-mult-to-a.patch @@ -0,0 +1,55 @@ +From bb4c8316e09d3d44378c77a5868882d70e393e91 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +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 +Cc: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-4.4/series b/queue-4.4/series index bf63146d773..ba36ffe17e3 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -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 -- 2.47.3