aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2008-05-27 21:31:43 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:07:27 -0400
commit0e3bd2b9996dfa4105617e2369155823df6b389a (patch)
tree491a6d8d2a3e78a4e52bd8aaae42217dbe2343e5 /drivers/media
parentb2de2313f170c3f7341d3a94365c5139a23067a7 (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')
-rw-r--r--drivers/media/video/videodev.c35
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;