diff --git a/scripts/kernel/uvc-debug.patch b/scripts/kernel/uvc-debug.patch index f40feb2..99ca8d1 100644 --- a/scripts/kernel/uvc-debug.patch +++ b/scripts/kernel/uvc-debug.patch @@ -1,15 +1,9 @@ --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c -@@ -528,7 +528,20 @@ - if (req_size > max_req_size) { - /* The prepared interval length and expected buffer size - * is not possible to stream with the currently configured - * isoc bandwidth. Fallback to the maximum. - */ - req_size = max_req_size; +@@ -534,6 +534,16 @@ } video->req_size = req_size; -+ + + if (!req_size || !video->max_payload_size || !video->imagesize || !nreq) { + uvcg_info(&uvc->func, + "Video prep requests: imagesize=%u interval=%u interval_dur=%u nreq=%u header=%u req_size=%u max_req=%u max_payload=%u ep_maxpacket=%u maxburst=%u mult=%u bInterval=%u speed=%u\n", @@ -19,9 +13,11 @@ + video->ep->maxburst, video->ep->mult, + video->ep->desc->bInterval, cdev->gadget->speed); + } - ++ /* We need to compensate the amount of requests to be -@@ -763,17 +763,60 @@ + * allocated with the maximum amount of zero length requests. + * Since it is possible that hw_submit will initially +@@ -764,20 +774,63 @@ { int ret; @@ -56,6 +52,12 @@ + return -EINVAL; + } + + /* + * Safe to access request related fields without req_lock because + * this is the only thread currently active, and no other + * request handling thread will become active until this function + * returns. + */ + uvcg_info(&video->uvc->func, + "Video enable start: video=%p ep=%p kworker=%p async_wq=%p req_size=%u max_payload=%u requests=%u reqs_per_frame=%u use_sg=%u flags=0x%x\n", + video, video->ep, video->kworker, video->async_wq, @@ -78,6 +80,4 @@ + if ((ret = uvcg_queue_enable(&video->queue, 1)) < 0) return ret; - /* - * Safe to access request related fields without req_lock because - * this is the only thread currently active, and no other +