V4L/DVB: ivtv: convert to use s_mbus_fmt
authorHans Verkuil <hverkuil@xs4all.nl>
Sat, 8 May 2010 19:28:51 +0000 (16:28 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 1 Jun 2010 04:20:30 +0000 (01:20 -0300)
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/ivtv/ivtv-controls.c
drivers/media/video/ivtv/ivtv-ioctl.c

index b59475b..b588e30 100644 (file)
@@ -267,13 +267,13 @@ int ivtv_s_ext_ctrls(struct file *file, void *fh, struct v4l2_ext_controls *c)
                if (p.video_encoding != itv->params.video_encoding) {
                        int is_mpeg1 = p.video_encoding ==
                                V4L2_MPEG_VIDEO_ENCODING_MPEG_1;
-                       struct v4l2_format fmt;
+                       struct v4l2_mbus_framefmt fmt;
 
                        /* fix videodecoder resolution */
-                       fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-                       fmt.fmt.pix.width = itv->params.width / (is_mpeg1 ? 2 : 1);
-                       fmt.fmt.pix.height = itv->params.height;
-                       v4l2_subdev_call(itv->sd_video, video, s_fmt, &fmt);
+                       fmt.width = itv->params.width / (is_mpeg1 ? 2 : 1);
+                       fmt.height = itv->params.height;
+                       fmt.code = V4L2_MBUS_FMT_FIXED;
+                       v4l2_subdev_call(itv->sd_video, video, s_mbus_fmt, &fmt);
                }
                err = cx2341x_update(itv, ivtv_api_func, &itv->params, &p);
                if (!err && itv->params.stream_vbi_fmt != p.stream_vbi_fmt)
index fa9f0d9..11ac2fa 100644 (file)
@@ -569,6 +569,7 @@ static int ivtv_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f
        struct ivtv_open_id *id = fh;
        struct ivtv *itv = id->itv;
        struct cx2341x_mpeg_params *p = &itv->params;
+       struct v4l2_mbus_framefmt mbus_fmt;
        int ret = ivtv_try_fmt_vid_cap(file, fh, fmt);
        int w = fmt->fmt.pix.width;
        int h = fmt->fmt.pix.height;
@@ -586,7 +587,10 @@ static int ivtv_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f
        p->height = h;
        if (p->video_encoding == V4L2_MPEG_VIDEO_ENCODING_MPEG_1)
                fmt->fmt.pix.width /= 2;
-       v4l2_subdev_call(itv->sd_video, video, s_fmt, fmt);
+       mbus_fmt.width = fmt->fmt.pix.width;
+       mbus_fmt.height = h;
+       mbus_fmt.code = V4L2_MBUS_FMT_FIXED;
+       v4l2_subdev_call(itv->sd_video, video, s_mbus_fmt, &mbus_fmt);
        return ivtv_g_fmt_vid_cap(file, fh, fmt);
 }