Revert "usb: gadget: composite: always set ep->mult to a sensible value"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2017 07:54:43 +0000 (08:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2017 10:22:51 +0000 (11:22 +0100)
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
drivers/usb/gadget/function/uvc_video.c

index 46d30dbde025068c2277a0d01d7cebecd66fee23..8cf00f6ed0433cfe1fa40862f339fdf0a012721b 100644 (file)
@@ -148,12 +148,7 @@ ep_found:
        _ep->desc = chosen_desc;
        _ep->comp_desc = NULL;
        _ep->maxburst = 0;
        _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;
 
        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 */
                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;
                case USB_ENDPOINT_XFER_BULK:
                case USB_ENDPOINT_XFER_INT:
                        _ep->maxburst = comp_desc->bMaxBurst + 1;
index 0f01c04d7cbd856581da53d6e69cba5f50b2c922..3d0d5d94a62f2fe6927983ba6979784eb20eceeb 100644 (file)
@@ -243,7 +243,7 @@ uvc_video_alloc_requests(struct uvc_video *video)
 
        req_size = video->ep->maxpacket
                 * max_t(unsigned int, video->ep->maxburst, 1)
 
        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);
 
        for (i = 0; i < UVC_NUM_REQUESTS; ++i) {
                video->req_buffer[i] = kmalloc(req_size, GFP_KERNEL);