From: Hans Verkuil <hans.verkuil@xxxxxxxxx> Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> --- drivers/media/usb/au0828/au0828-video.c | 15 +++++++++++++-- drivers/media/usb/au0828/au0828.h | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/media/usb/au0828/au0828-video.c b/drivers/media/usb/au0828/au0828-video.c index 3c3e4d6..62308fe 100644 --- a/drivers/media/usb/au0828/au0828-video.c +++ b/drivers/media/usb/au0828/au0828-video.c @@ -1322,7 +1322,7 @@ out: return rc; } -static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id * norm) +static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *norm) { struct au0828_fh *fh = priv; struct au0828_dev *dev = fh->dev; @@ -1339,10 +1339,20 @@ static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id * norm) if (dev->dvb.frontend && dev->dvb.frontend->ops.analog_ops.i2c_gate_ctrl) dev->dvb.frontend->ops.analog_ops.i2c_gate_ctrl(dev->dvb.frontend, 0); + dev->std = *norm; return 0; } +static int vidioc_g_std(struct file *file, void *priv, v4l2_std_id *norm) +{ + struct au0828_fh *fh = priv; + struct au0828_dev *dev = fh->dev; + + *norm = dev->std; + return 0; +} + static int vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *input) { @@ -1889,6 +1899,7 @@ static const struct v4l2_ioctl_ops video_ioctl_ops = { .vidioc_qbuf = vidioc_qbuf, .vidioc_dqbuf = vidioc_dqbuf, .vidioc_s_std = vidioc_s_std, + .vidioc_g_std = vidioc_g_std, .vidioc_enum_input = vidioc_enum_input, .vidioc_g_input = vidioc_g_input, .vidioc_s_input = vidioc_s_input, @@ -1913,7 +1924,6 @@ static const struct video_device au0828_video_template = { .release = video_device_release, .ioctl_ops = &video_ioctl_ops, .tvnorms = V4L2_STD_NTSC_M, - .current_norm = V4L2_STD_NTSC_M, }; /**************************************************************************/ @@ -1982,6 +1992,7 @@ int au0828_analog_register(struct au0828_dev *dev, dev->bytesperline = dev->width << 1; dev->ctrl_ainput = 0; dev->ctrl_freq = 960; + dev->std = V4L2_STD_NTSC_M; /* allocate and fill v4l2 video struct */ dev->vdev = video_device_alloc(); diff --git a/drivers/media/usb/au0828/au0828.h b/drivers/media/usb/au0828/au0828.h index ad40048..ef1f57f 100644 --- a/drivers/media/usb/au0828/au0828.h +++ b/drivers/media/usb/au0828/au0828.h @@ -222,6 +222,7 @@ struct au0828_dev { int vbi_width; int vbi_height; u32 vbi_read; + v4l2_std_id std; u32 field_size; u32 frame_size; u32 bytesperline; -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html