media: usbtv: Implement wait_prepare and wait_finish
authorEzequiel Garcia <ezequiel@collabora.com>
Fri, 11 May 2018 00:17:20 +0000 (20:17 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 25 May 2018 19:17:19 +0000 (15:17 -0400)
This driver is currently specifying a vb2_queue lock,
which means it straightforward to implement wait_prepare
and wait_finish.

Having these callbacks releases the queue lock while blocking,
which improves latency by allowing for example streamoff
or qbuf operations while waiting in dqbuf.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/usb/usbtv/usbtv-video.c

index c2f8e50..ce79df6 100644 (file)
@@ -781,6 +781,8 @@ static const struct vb2_ops usbtv_vb2_ops = {
        .buf_queue = usbtv_buf_queue,
        .start_streaming = usbtv_start_streaming,
        .stop_streaming = usbtv_stop_streaming,
+       .wait_prepare = vb2_ops_wait_prepare,
+       .wait_finish = vb2_ops_wait_finish,
 };
 
 static int usbtv_s_ctrl(struct v4l2_ctrl *ctrl)