diff options
Diffstat (limited to 'drivers/usb/gadget/function/f_uvc.c')
| -rw-r--r-- | drivers/usb/gadget/function/f_uvc.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c index 44b4352a2676..f48a00e49794 100644 --- a/drivers/usb/gadget/function/f_uvc.c +++ b/drivers/usb/gadget/function/f_uvc.c @@ -633,7 +633,12 @@ uvc_function_bind(struct usb_configuration *c, struct usb_function *f)  	uvc_hs_streaming_ep.wMaxPacketSize =  		cpu_to_le16(max_packet_size | ((max_packet_mult - 1) << 11)); -	uvc_hs_streaming_ep.bInterval = opts->streaming_interval; + +	/* A high-bandwidth endpoint must specify a bInterval value of 1 */ +	if (max_packet_mult > 1) +		uvc_hs_streaming_ep.bInterval = 1; +	else +		uvc_hs_streaming_ep.bInterval = opts->streaming_interval;  	uvc_ss_streaming_ep.wMaxPacketSize = cpu_to_le16(max_packet_size);  	uvc_ss_streaming_ep.bInterval = opts->streaming_interval; @@ -817,6 +822,7 @@ static struct usb_function_instance *uvc_alloc_inst(void)  	pd->bmControls[0]		= 1;  	pd->bmControls[1]		= 0;  	pd->iProcessing			= 0; +	pd->bmVideoStandards		= 0;  	od = &opts->uvc_output_terminal;  	od->bLength			= UVC_DT_OUTPUT_TERMINAL_SIZE; | 
