]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blobdiff - drivers/media/platform/s3c-camif/camif-capture.c
[media] media: videobuf2: Restructure vb2_buffer
[mirror_ubuntu-focal-kernel.git] / drivers / media / platform / s3c-camif / camif-capture.c
index bb86cf9b367f792977e53ae792194409e16bb5e6..5666766e2b87723497c380c0691783747393d6aa 100644 (file)
@@ -164,12 +164,12 @@ static int camif_reinitialize(struct camif_vp *vp)
        /* Release unused buffers */
        while (!list_empty(&vp->pending_buf_q)) {
                buf = camif_pending_queue_pop(vp);
-               vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR);
+               vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
        }
 
        while (!list_empty(&vp->active_buf_q)) {
                buf = camif_active_queue_pop(vp);
-               vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR);
+               vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
        }
 
        spin_unlock_irqrestore(&camif->slock, flags);
@@ -338,9 +338,9 @@ irqreturn_t s3c_camif_irq_handler(int irq, void *priv)
 
                if (!WARN_ON(vbuf == NULL)) {
                        /* Dequeue a filled buffer */
-                       v4l2_get_timestamp(&vbuf->vb.v4l2_buf.timestamp);
-                       vbuf->vb.v4l2_buf.sequence = vp->frame_sequence++;
-                       vb2_buffer_done(&vbuf->vb, VB2_BUF_STATE_DONE);
+                       v4l2_get_timestamp(&vbuf->vb.timestamp);
+                       vbuf->vb.sequence = vp->frame_sequence++;
+                       vb2_buffer_done(&vbuf->vb.vb2_buf, VB2_BUF_STATE_DONE);
 
                        /* Set up an empty buffer at the DMA engine */
                        vbuf = camif_pending_queue_pop(vp);
@@ -490,13 +490,14 @@ static int buffer_prepare(struct vb2_buffer *vb)
 
 static void buffer_queue(struct vb2_buffer *vb)
 {
-       struct camif_buffer *buf = container_of(vb, struct camif_buffer, vb);
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+       struct camif_buffer *buf = container_of(vbuf, struct camif_buffer, vb);
        struct camif_vp *vp = vb2_get_drv_priv(vb->vb2_queue);
        struct camif_dev *camif = vp->camif;
        unsigned long flags;
 
        spin_lock_irqsave(&camif->slock, flags);
-       WARN_ON(camif_prepare_addr(vp, &buf->vb, &buf->paddr));
+       WARN_ON(camif_prepare_addr(vp, &buf->vb.vb2_buf, &buf->paddr));
 
        if (!(vp->state & ST_VP_STREAMING) && vp->active_buffers < 2) {
                /* Schedule an empty buffer in H/W */