aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/uvc/uvc_v4l2.c
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2014-01-29 11:13:52 -0500
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-02-28 11:24:32 -0500
commit6e9179e2af61f93e6416c3dd11aca46dcd5a68e8 (patch)
tree9a4e52f8018be2e1306e8f30e45af016895ffe0c /drivers/media/usb/uvc/uvc_v4l2.c
parentbddb9d0e97f20dfd614d3dd56043418766703936 (diff)
[media] uvcvideo: Enable VIDIOC_CREATE_BUFS
This patch enables the ioctl to create additional buffers on the videobuf2 capture queue. [laurent.pinchart@ideasonboard.com: Acquire privileges instead of just checking them in VIDIOC_CREATE_BUFS implementation] Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/usb/uvc/uvc_v4l2.c')
-rw-r--r--drivers/media/usb/uvc/uvc_v4l2.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index 3afff92804d3..378ae02e593b 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -1000,6 +1000,17 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
1000 return uvc_query_buffer(&stream->queue, buf); 1000 return uvc_query_buffer(&stream->queue, buf);
1001 } 1001 }
1002 1002
1003 case VIDIOC_CREATE_BUFS:
1004 {
1005 struct v4l2_create_buffers *cb = arg;
1006
1007 ret = uvc_acquire_privileges(handle);
1008 if (ret < 0)
1009 return ret;
1010
1011 return uvc_create_buffers(&stream->queue, cb);
1012 }
1013
1003 case VIDIOC_QBUF: 1014 case VIDIOC_QBUF:
1004 if (!uvc_has_privileges(handle)) 1015 if (!uvc_has_privileges(handle))
1005 return -EBUSY; 1016 return -EBUSY;