diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2008-05-27 21:31:43 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-20 06:07:27 -0400 |
commit | 0e3bd2b9996dfa4105617e2369155823df6b389a (patch) | |
tree | 491a6d8d2a3e78a4e52bd8aaae42217dbe2343e5 /drivers/media/video/videodev.c | |
parent | b2de2313f170c3f7341d3a94365c5139a23067a7 (diff) |
V4L/DVB (7948): videodev: add missing vidioc_try_fmt_sliced_vbi_output and VIDIOC_ENUMOUTPUT handling
There was no vidioc_try_fmt_sliced_vbi_output, instead vidioc_try_fmt_vbi_output
was reused.
The VIDIOC_ENUMOUTPUT handling was missing altogether, even though the callback
existed.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/videodev.c')
-rw-r--r-- | drivers/media/video/videodev.c | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c index 4d58b55095d7..83106bba100d 100644 --- a/drivers/media/video/videodev.c +++ b/drivers/media/video/videodev.c | |||
@@ -840,8 +840,8 @@ static int __video_do_ioctl(struct inode *inode, struct file *file, | |||
840 | ret=vfd->vidioc_enum_fmt_vbi(file, fh, f); | 840 | ret=vfd->vidioc_enum_fmt_vbi(file, fh, f); |
841 | break; | 841 | break; |
842 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: | 842 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: |
843 | if (vfd->vidioc_enum_fmt_vbi_output) | 843 | if (vfd->vidioc_enum_fmt_sliced_vbi_output) |
844 | ret=vfd->vidioc_enum_fmt_vbi_output(file, | 844 | ret = vfd->vidioc_enum_fmt_sliced_vbi_output(file, |
845 | fh, f); | 845 | fh, f); |
846 | break; | 846 | break; |
847 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: | 847 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: |
@@ -905,8 +905,8 @@ static int __video_do_ioctl(struct inode *inode, struct file *file, | |||
905 | ret=vfd->vidioc_g_fmt_vbi(file, fh, f); | 905 | ret=vfd->vidioc_g_fmt_vbi(file, fh, f); |
906 | break; | 906 | break; |
907 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: | 907 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: |
908 | if (vfd->vidioc_g_fmt_vbi_output) | 908 | if (vfd->vidioc_g_fmt_sliced_vbi_output) |
909 | ret=vfd->vidioc_g_fmt_vbi_output(file, fh, f); | 909 | ret = vfd->vidioc_g_fmt_sliced_vbi_output(file, fh, f); |
910 | break; | 910 | break; |
911 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: | 911 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: |
912 | if (vfd->vidioc_g_fmt_vbi_capture) | 912 | if (vfd->vidioc_g_fmt_vbi_capture) |
@@ -957,8 +957,8 @@ static int __video_do_ioctl(struct inode *inode, struct file *file, | |||
957 | ret=vfd->vidioc_s_fmt_vbi(file, fh, f); | 957 | ret=vfd->vidioc_s_fmt_vbi(file, fh, f); |
958 | break; | 958 | break; |
959 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: | 959 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: |
960 | if (vfd->vidioc_s_fmt_vbi_output) | 960 | if (vfd->vidioc_s_fmt_sliced_vbi_output) |
961 | ret=vfd->vidioc_s_fmt_vbi_output(file, fh, f); | 961 | ret = vfd->vidioc_s_fmt_sliced_vbi_output(file, fh, f); |
962 | break; | 962 | break; |
963 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: | 963 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: |
964 | if (vfd->vidioc_s_fmt_vbi_capture) | 964 | if (vfd->vidioc_s_fmt_vbi_capture) |
@@ -1009,8 +1009,8 @@ static int __video_do_ioctl(struct inode *inode, struct file *file, | |||
1009 | ret=vfd->vidioc_try_fmt_vbi(file, fh, f); | 1009 | ret=vfd->vidioc_try_fmt_vbi(file, fh, f); |
1010 | break; | 1010 | break; |
1011 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: | 1011 | case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: |
1012 | if (vfd->vidioc_try_fmt_vbi_output) | 1012 | if (vfd->vidioc_try_fmt_sliced_vbi_output) |
1013 | ret=vfd->vidioc_try_fmt_vbi_output(file, | 1013 | ret = vfd->vidioc_try_fmt_sliced_vbi_output(file, |
1014 | fh, f); | 1014 | fh, f); |
1015 | break; | 1015 | break; |
1016 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: | 1016 | case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: |
@@ -1297,6 +1297,25 @@ static int __video_do_ioctl(struct inode *inode, struct file *file, | |||
1297 | } | 1297 | } |
1298 | 1298 | ||
1299 | /* ------ output switching ---------- */ | 1299 | /* ------ output switching ---------- */ |
1300 | case VIDIOC_ENUMOUTPUT: | ||
1301 | { | ||
1302 | struct v4l2_output *p = arg; | ||
1303 | int i = p->index; | ||
1304 | |||
1305 | if (!vfd->vidioc_enum_output) | ||
1306 | break; | ||
1307 | memset(p, 0, sizeof(*p)); | ||
1308 | p->index = i; | ||
1309 | |||
1310 | ret = vfd->vidioc_enum_output(file, fh, p); | ||
1311 | if (!ret) | ||
1312 | dbgarg(cmd, "index=%d, name=%s, type=%d, " | ||
1313 | "audioset=%d, " | ||
1314 | "modulator=%d, std=%08Lx\n", | ||
1315 | p->index, p->name, p->type, p->audioset, | ||
1316 | p->modulator, (unsigned long long)p->std); | ||
1317 | break; | ||
1318 | } | ||
1300 | case VIDIOC_G_OUTPUT: | 1319 | case VIDIOC_G_OUTPUT: |
1301 | { | 1320 | { |
1302 | unsigned int *i = arg; | 1321 | unsigned int *i = arg; |