summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2008-07-26 14:16:29 +0200
committerHans Verkuil <hverkuil@xs4all.nl>2008-07-26 14:16:29 +0200
commitde70eb5e79c86c8efc2c0568c70f44bf0752c336 (patch)
tree9764d0201eddead5c699c0e8d31190022d8970e0 /linux/drivers/media
parent9d2bbe7ac1500f09286d51f912bdec9bb7d6b493 (diff)
downloadmediapointer-dvb-s2-de70eb5e79c86c8efc2c0568c70f44bf0752c336.tar.gz
mediapointer-dvb-s2-de70eb5e79c86c8efc2c0568c70f44bf0752c336.tar.bz2
saa7146: fix VIDIOC_ENUM_FMT
From: Hans Verkuil <hverkuil@xs4all.nl> VIDIOC_ENUM_FMT should keep the index and type fields. Instead, type was zeroed. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/common/saa7146_video.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/linux/drivers/media/common/saa7146_video.c b/linux/drivers/media/common/saa7146_video.c
index d3185e610..a2333bff8 100644
--- a/linux/drivers/media/common/saa7146_video.c
+++ b/linux/drivers/media/common/saa7146_video.c
@@ -959,21 +959,18 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
case VIDIOC_ENUM_FMT:
{
struct v4l2_fmtdesc *f = arg;
- int index;
switch (f->type) {
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
- case V4L2_BUF_TYPE_VIDEO_OVERLAY: {
- index = f->index;
- if (index < 0 || index >= NUM_FORMATS) {
+ case V4L2_BUF_TYPE_VIDEO_OVERLAY:
+ if (f->index >= NUM_FORMATS)
return -EINVAL;
- }
- memset(f,0,sizeof(*f));
- f->index = index;
- strlcpy((char *)f->description,formats[index].name,sizeof(f->description));
- f->pixelformat = formats[index].pixelformat;
+ strlcpy((char *)f->description, formats[f->index].name,
+ sizeof(f->description));
+ f->pixelformat = formats[f->index].pixelformat;
+ f->flags = 0;
+ memset(f->reserved, 0, sizeof(f->reserved));
break;
- }
default:
return -EINVAL;
}