diff --git a/drivers/usb/gadget/function/uvc_queue.c b/drivers/usb/gadget/function/uvc_queue.c index 9e33d5206d54..a404108c3e4f 100644 --- a/drivers/usb/gadget/function/uvc_queue.c +++ b/drivers/usb/gadget/function/uvc_queue.c @@ -124,6 +124,14 @@ int uvcg_queue_init(struct uvc_video_queue *queue, enum v4l2_buf_type type, queue->queue.mem_ops = &vb2_vmalloc_memops; queue->queue.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC | V4L2_BUF_FLAG_TSTAMP_SRC_EOF; + /* + * For rockchip platform, the userspace uvc application + * use bytesused == 0 as a way to indicate that the data + * is all zero and unused. + */ +#ifdef CONFIG_ARCH_ROCKCHIP + queue->queue.allow_zero_bytesused = 1; +#endif ret = vb2_queue_init(&queue->queue); if (ret) return ret;