]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/media/platform/vivid/vivid-vid-cap.c
Merge remote-tracking branch 'v4l-dvb/master'
[karo-tx-linux.git] / drivers / media / platform / vivid / vivid-vid-cap.c
index ed0b8788a66f8d63eb64d1eeed646a8189461b0e..ef5412311b2fa057a9dc96f5f0f620ddfaa9f0ce 100644 (file)
@@ -95,10 +95,11 @@ static const struct v4l2_discrete_probe webcam_probe = {
        VIVID_WEBCAM_SIZES
 };
 
-static int vid_cap_queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt,
+static int vid_cap_queue_setup(struct vb2_queue *vq, const void *parg,
                       unsigned *nbuffers, unsigned *nplanes,
                       unsigned sizes[], void *alloc_ctxs[])
 {
+       const struct v4l2_format *fmt = parg;
        struct vivid_dev *dev = vb2_get_drv_priv(vq);
        unsigned buffers = tpg_g_buffers(&dev->tpg);
        unsigned h = dev->fmt_cap_rect.height;
@@ -198,7 +199,7 @@ static int vid_cap_buf_prepare(struct vb2_buffer *vb)
                }
 
                vb2_set_plane_payload(vb, p, size);
-               vb->v4l2_planes[p].data_offset = dev->fmt_cap->data_offset[p];
+               vb->planes[p].data_offset = dev->fmt_cap->data_offset[p];
        }
 
        return 0;
@@ -206,10 +207,11 @@ static int vid_cap_buf_prepare(struct vb2_buffer *vb)
 
 static void vid_cap_buf_finish(struct vb2_buffer *vb)
 {
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
        struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
-       struct v4l2_timecode *tc = &vb->v4l2_buf.timecode;
+       struct v4l2_timecode *tc = &vbuf->timecode;
        unsigned fps = 25;
-       unsigned seq = vb->v4l2_buf.sequence;
+       unsigned seq = vbuf->sequence;
 
        if (!vivid_is_sdtv_cap(dev))
                return;
@@ -218,7 +220,7 @@ static void vid_cap_buf_finish(struct vb2_buffer *vb)
         * Set the timecode. Rarely used, so it is interesting to
         * test this.
         */
-       vb->v4l2_buf.flags |= V4L2_BUF_FLAG_TIMECODE;
+       vbuf->flags |= V4L2_BUF_FLAG_TIMECODE;
        if (dev->std_cap & V4L2_STD_525_60)
                fps = 30;
        tc->type = (fps == 30) ? V4L2_TC_TYPE_30FPS : V4L2_TC_TYPE_25FPS;
@@ -231,8 +233,9 @@ static void vid_cap_buf_finish(struct vb2_buffer *vb)
 
 static void vid_cap_buf_queue(struct vb2_buffer *vb)
 {
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
        struct vivid_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
-       struct vivid_buffer *buf = container_of(vb, struct vivid_buffer, vb);
+       struct vivid_buffer *buf = container_of(vbuf, struct vivid_buffer, vb);
 
        dprintk(dev, 1, "%s\n", __func__);
 
@@ -268,7 +271,8 @@ static int vid_cap_start_streaming(struct vb2_queue *vq, unsigned count)
 
                list_for_each_entry_safe(buf, tmp, &dev->vid_cap_active, list) {
                        list_del(&buf->list);
-                       vb2_buffer_done(&buf->vb, VB2_BUF_STATE_QUEUED);
+                       vb2_buffer_done(&buf->vb.vb2_buf,
+                                       VB2_BUF_STATE_QUEUED);
                }
        }
        return err;