summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/v4l2-ioctl.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-08-11 13:58:54 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-08-11 13:58:54 -0300
commitce486a4e35fc5f89c56f1bc8db8ad09cb9e3a98e (patch)
treebf90690073c0667a01166bbefd5dc1ae0398fe44 /linux/drivers/media/video/v4l2-ioctl.c
parentdb44a7d2b169cceeafa7a8b5fc5b8fe921d4088d (diff)
parent6971a9d650f6ab06dfedc4464665366c87da4bbc (diff)
downloadmediapointer-dvb-s2-ce486a4e35fc5f89c56f1bc8db8ad09cb9e3a98e.tar.gz
mediapointer-dvb-s2-ce486a4e35fc5f89c56f1bc8db8ad09cb9e3a98e.tar.bz2
merge: http://kernellabs.com/hg/~mkrufky/sms1xxx
From: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers/media/video/v4l2-ioctl.c')
-rw-r--r--linux/drivers/media/video/v4l2-ioctl.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/linux/drivers/media/video/v4l2-ioctl.c b/linux/drivers/media/video/v4l2-ioctl.c
index 80c94dc5a..d746d9555 100644
--- a/linux/drivers/media/video/v4l2-ioctl.c
+++ b/linux/drivers/media/video/v4l2-ioctl.c
@@ -1088,8 +1088,10 @@ static long __video_do_ioctl(struct file *file,
/* Calls the specific handler */
if (ops->vidioc_g_std)
ret = ops->vidioc_g_std(file, fh, id);
- else
+ else if (vfd->current_norm)
*id = vfd->current_norm;
+ else
+ ret = -EINVAL;
if (!ret)
dbgarg(cmd, "std=0x%08Lx\n", (long long unsigned)*id);
@@ -1560,12 +1562,19 @@ static long __video_do_ioctl(struct file *file,
break;
ret = ops->vidioc_g_parm(file, fh, p);
} else {
+ v4l2_std_id std = vfd->current_norm;
+
if (p->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
- v4l2_video_std_frame_period(vfd->current_norm,
- &p->parm.capture.timeperframe);
ret = 0;
+ if (ops->vidioc_g_std)
+ ret = ops->vidioc_g_std(file, fh, &std);
+ else if (std == 0)
+ ret = -EINVAL;
+ if (ret == 0)
+ v4l2_video_std_frame_period(std,
+ &p->parm.capture.timeperframe);
}
dbgarg(cmd, "type=%d\n", p->type);