diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2009-12-09 06:39:54 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-03-21 19:32:42 -0400 |
commit | ea8aa4349e11c62242a8908fc172de27d7a151d7 (patch) | |
tree | b079fb17ea30defa24b394daac41679074a5a690 /drivers/media/video/v4l2-subdev.c | |
parent | 3dd5ee0801ee10e5632b40fd8d0495417b32910a (diff) |
[media] v4l: subdev: Control ioctls support
Pass the control-related ioctls to the subdev driver through the control
framework.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/v4l2-subdev.c')
-rw-r--r-- | drivers/media/video/v4l2-subdev.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/media/video/v4l2-subdev.c b/drivers/media/video/v4l2-subdev.c index 460b33697c9b..da10430051c0 100644 --- a/drivers/media/video/v4l2-subdev.c +++ b/drivers/media/video/v4l2-subdev.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/ioctl.h> | 24 | #include <linux/ioctl.h> |
25 | #include <linux/videodev2.h> | 25 | #include <linux/videodev2.h> |
26 | 26 | ||
27 | #include <media/v4l2-ctrls.h> | ||
27 | #include <media/v4l2-device.h> | 28 | #include <media/v4l2-device.h> |
28 | #include <media/v4l2-ioctl.h> | 29 | #include <media/v4l2-ioctl.h> |
29 | 30 | ||
@@ -39,7 +40,31 @@ static int subdev_close(struct file *file) | |||
39 | 40 | ||
40 | static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg) | 41 | static long subdev_do_ioctl(struct file *file, unsigned int cmd, void *arg) |
41 | { | 42 | { |
43 | struct video_device *vdev = video_devdata(file); | ||
44 | struct v4l2_subdev *sd = vdev_to_v4l2_subdev(vdev); | ||
45 | |||
42 | switch (cmd) { | 46 | switch (cmd) { |
47 | case VIDIOC_QUERYCTRL: | ||
48 | return v4l2_subdev_queryctrl(sd, arg); | ||
49 | |||
50 | case VIDIOC_QUERYMENU: | ||
51 | return v4l2_subdev_querymenu(sd, arg); | ||
52 | |||
53 | case VIDIOC_G_CTRL: | ||
54 | return v4l2_subdev_g_ctrl(sd, arg); | ||
55 | |||
56 | case VIDIOC_S_CTRL: | ||
57 | return v4l2_subdev_s_ctrl(sd, arg); | ||
58 | |||
59 | case VIDIOC_G_EXT_CTRLS: | ||
60 | return v4l2_subdev_g_ext_ctrls(sd, arg); | ||
61 | |||
62 | case VIDIOC_S_EXT_CTRLS: | ||
63 | return v4l2_subdev_s_ext_ctrls(sd, arg); | ||
64 | |||
65 | case VIDIOC_TRY_EXT_CTRLS: | ||
66 | return v4l2_subdev_try_ext_ctrls(sd, arg); | ||
67 | |||
43 | default: | 68 | default: |
44 | return -ENOIOCTLCMD; | 69 | return -ENOIOCTLCMD; |
45 | } | 70 | } |