From: Hans Verkuil <[email protected]>

Signed-off-by: Hans Verkuil <[email protected]>
---
 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to