Skip to contentSkip to conversation

Patch "usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's wBytesPerInterval" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Mar 27, 2017

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's wBytesPerInterval

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
usb-gadget-f_uvc-fix-superspeed-companion-descriptor-s-wbytesperinterval.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 09424c50b7dff40cb30011c09114404a4656e023 Mon Sep 17 00:00:00 2001

From: Roger Quadros <[email protected]>
Date: Wed, 8 Mar 2017 16:05:43 +0200
Subject: usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's wBytesPerInterval

From: Roger Quadros <[email protected]>

commit 09424c50b7dff40cb30011c09114404a4656e023 upstream.

The streaming_maxburst module parameter is 0 offset (0..15) so we must add 1 while using it for wBytesPerInterval calculation for the SuperSpeed companion descriptor.

Without this host uvcvideo driver will always see the wrong wBytesPerInterval for SuperSpeed uvc gadget and may not find a suitable video interface endpoint.
e.g. for streaming_maxburst = 0 case it will always fail as wBytePerInterval was evaluating to 0.

---
 drivers/usb/gadget/function/f_uvc.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/gadget/function/f_uvc.c +1 -1
@@ -625,7 +625,7 @@ uvc_function_bind(struct usb_configurati
 	uvc_ss_streaming_comp.bMaxBurst = opts->streaming_maxburst;
 	uvc_ss_streaming_comp.wBytesPerInterval =
 		cpu_to_le16(max_packet_size * max_packet_mult *
-			    opts->streaming_maxburst);
+			    (opts->streaming_maxburst + 1));
 
 	/* Allocate endpoints. */
 	ep = usb_ep_autoconfig(cdev->gadget, &uvc_control_ep);

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/usb-gadget-f_uvc-fix-superspeed-companion-descriptor-s-wbytesperinterval.patch