usb: gadget: uvc: dont drop frames if zero length packages are late
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Tue, 13 Feb 2024 23:37:54 +0000 (00:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Feb 2024 16:08:45 +0000 (17:08 +0100)
If the request that was missed was zero bytes long, it
is likely that the overall transferred frame was not affected.
So don't flag the frame incomplete in that case.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20240214-uvc-error-tag-v1-1-37659a3877fe@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/uvc_video.c

index ff7c1fa..d677d7d 100644 (file)
@@ -398,7 +398,8 @@ uvc_video_complete(struct usb_ep *ep, struct usb_request *req)
 
        case -EXDEV:
                uvcg_dbg(&video->uvc->func, "VS request missed xfer.\n");
-               queue->flags |= UVC_QUEUE_DROP_INCOMPLETE;
+               if (req->length != 0)
+                       queue->flags |= UVC_QUEUE_DROP_INCOMPLETE;
                break;
 
        case -ESHUTDOWN:        /* disconnect from host. */