diff options
author | Philipp Zabel <p.zabel@pengutronix.de> | 2014-01-29 11:13:52 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-02-28 11:24:32 -0500 |
commit | 6e9179e2af61f93e6416c3dd11aca46dcd5a68e8 (patch) | |
tree | 9a4e52f8018be2e1306e8f30e45af016895ffe0c /drivers/media/usb/uvc/uvc_v4l2.c | |
parent | bddb9d0e97f20dfd614d3dd56043418766703936 (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.c | 11 |
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; |