[media] media: videobuf2: Restructure vb2_buffer
[deliverable/linux.git] / drivers / media / platform / rcar_jpu.c
index 18e62d06797cbd09c7e544fb5b4ff1fd9d66a814..7533b9e16649503274bd49340d380cf412c132f7 100644 (file)
@@ -471,7 +471,7 @@ static const char *error_to_text[16] = {
        "Unknown"
 };
 
-static struct jpu_buffer *vb2_to_jpu_buffer(struct vb2_buffer *vb)
+static struct jpu_buffer *vb2_to_jpu_buffer(struct vb2_v4l2_buffer *vb)
 {
        struct v4l2_m2m_buffer *b =
                container_of(vb, struct v4l2_m2m_buffer, vb);
@@ -1044,6 +1044,7 @@ static int jpu_queue_setup(struct vb2_queue *vq,
 
 static int jpu_buf_prepare(struct vb2_buffer *vb)
 {
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
        struct jpu_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
        struct jpu_q_data *q_data;
        unsigned int i;
@@ -1051,9 +1052,9 @@ static int jpu_buf_prepare(struct vb2_buffer *vb)
        q_data = jpu_get_q_data(ctx, vb->vb2_queue->type);
 
        if (V4L2_TYPE_IS_OUTPUT(vb->vb2_queue->type)) {
-               if (vb->v4l2_buf.field == V4L2_FIELD_ANY)
-                       vb->v4l2_buf.field = V4L2_FIELD_NONE;
-               if (vb->v4l2_buf.field != V4L2_FIELD_NONE) {
+               if (vbuf->field == V4L2_FIELD_ANY)
+                       vbuf->field = V4L2_FIELD_NONE;
+               if (vbuf->field != V4L2_FIELD_NONE) {
                        dev_err(ctx->jpu->dev, "%s field isn't supported\n",
                                        __func__);
                        return -EINVAL;
@@ -1080,10 +1081,11 @@ static int jpu_buf_prepare(struct vb2_buffer *vb)
 
 static void jpu_buf_queue(struct vb2_buffer *vb)
 {
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
        struct jpu_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
 
        if (!ctx->encoder && V4L2_TYPE_IS_OUTPUT(vb->vb2_queue->type)) {
-               struct jpu_buffer *jpu_buf = vb2_to_jpu_buffer(vb);
+               struct jpu_buffer *jpu_buf = vb2_to_jpu_buffer(vbuf);
                struct jpu_q_data *q_data, adjust;
                void *buffer = vb2_plane_vaddr(vb, 0);
                unsigned long buf_size = vb2_get_plane_payload(vb, 0);
@@ -1117,7 +1119,7 @@ static void jpu_buf_queue(struct vb2_buffer *vb)
        }
 
        if (ctx->fh.m2m_ctx)
-               v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vb);
+               v4l2_m2m_buf_queue(ctx->fh.m2m_ctx, vbuf);
 
        return;
 
@@ -1128,14 +1130,15 @@ format_error:
 
 static void jpu_buf_finish(struct vb2_buffer *vb)
 {
-       struct jpu_buffer *jpu_buf = vb2_to_jpu_buffer(vb);
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+       struct jpu_buffer *jpu_buf = vb2_to_jpu_buffer(vbuf);
        struct jpu_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
        struct jpu_q_data *q_data = &ctx->out_q;
        enum v4l2_buf_type type = vb->vb2_queue->type;
        u8 *buffer;
 
        if (vb->state == VB2_BUF_STATE_DONE)
-               vb->v4l2_buf.sequence = jpu_get_q_data(ctx, type)->sequence++;
+               vbuf->sequence = jpu_get_q_data(ctx, type)->sequence++;
 
        if (!ctx->encoder || vb->state != VB2_BUF_STATE_DONE ||
            V4L2_TYPE_IS_OUTPUT(type))
@@ -1163,7 +1166,7 @@ static int jpu_start_streaming(struct vb2_queue *vq, unsigned count)
 static void jpu_stop_streaming(struct vb2_queue *vq)
 {
        struct jpu_ctx *ctx = vb2_get_drv_priv(vq);
-       struct vb2_buffer *vb;
+       struct vb2_v4l2_buffer *vb;
        unsigned long flags;
 
        for (;;) {
@@ -1327,7 +1330,7 @@ static const struct v4l2_file_operations jpu_fops = {
 static void jpu_cleanup(struct jpu_ctx *ctx, bool reset)
 {
        /* remove current buffers and finish job */
-       struct vb2_buffer *src_buf, *dst_buf;
+       struct vb2_v4l2_buffer *src_buf, *dst_buf;
        unsigned long flags;
 
        spin_lock_irqsave(&ctx->jpu->lock, flags);
@@ -1353,7 +1356,7 @@ static void jpu_device_run(void *priv)
        struct jpu *jpu = ctx->jpu;
        struct jpu_buffer *jpu_buf;
        struct jpu_q_data *q_data;
-       struct vb2_buffer *src_buf, *dst_buf;
+       struct vb2_v4l2_buffer *src_buf, *dst_buf;
        unsigned int w, h, bpl;
        unsigned char num_planes, subsampling;
        unsigned long flags;
@@ -1389,10 +1392,12 @@ static void jpu_device_run(void *priv)
                unsigned long src_1_addr, src_2_addr, dst_addr;
                unsigned int redu, inft;
 
-               dst_addr = vb2_dma_contig_plane_dma_addr(dst_buf, 0);
-               src_1_addr = vb2_dma_contig_plane_dma_addr(src_buf, 0);
+               dst_addr = vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0);
+               src_1_addr =
+                       vb2_dma_contig_plane_dma_addr(&src_buf->vb2_buf, 0);
                if (num_planes > 1)
-                       src_2_addr = vb2_dma_contig_plane_dma_addr(src_buf, 1);
+                       src_2_addr = vb2_dma_contig_plane_dma_addr(
+                                       &src_buf->vb2_buf, 1);
                else
                        src_2_addr = src_1_addr + w * h;
 
@@ -1453,10 +1458,12 @@ static void jpu_device_run(void *priv)
                        return;
                }
 
-               src_addr = vb2_dma_contig_plane_dma_addr(src_buf, 0);
-               dst_1_addr = vb2_dma_contig_plane_dma_addr(dst_buf, 0);
+               src_addr = vb2_dma_contig_plane_dma_addr(&src_buf->vb2_buf, 0);
+               dst_1_addr =
+                       vb2_dma_contig_plane_dma_addr(&dst_buf->vb2_buf, 0);
                if (q_data->fmtinfo->num_planes > 1)
-                       dst_2_addr = vb2_dma_contig_plane_dma_addr(dst_buf, 1);
+                       dst_2_addr = vb2_dma_contig_plane_dma_addr(
+                                       &dst_buf->vb2_buf, 1);
                else
                        dst_2_addr = dst_1_addr + w * h;
 
@@ -1511,7 +1518,7 @@ static irqreturn_t jpu_irq_handler(int irq, void *dev_id)
 {
        struct jpu *jpu = dev_id;
        struct jpu_ctx *curr_ctx;
-       struct vb2_buffer *src_buf, *dst_buf;
+       struct vb2_v4l2_buffer *src_buf, *dst_buf;
        unsigned int int_status;
 
        int_status = jpu_read(jpu, JINTS);
@@ -1547,18 +1554,18 @@ static irqreturn_t jpu_irq_handler(int irq, void *dev_id)
                        unsigned long payload_size = jpu_read(jpu, JCDTCU) << 16
                                                   | jpu_read(jpu, JCDTCM) << 8
                                                   | jpu_read(jpu, JCDTCD);
-                       vb2_set_plane_payload(dst_buf, 0,
+                       vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
                                payload_size + JPU_JPEG_HDR_SIZE);
                }
 
-               dst_buf->v4l2_buf.field = src_buf->v4l2_buf.field;
-               dst_buf->v4l2_buf.timestamp = src_buf->v4l2_buf.timestamp;
-               if (src_buf->v4l2_buf.flags & V4L2_BUF_FLAG_TIMECODE)
-                       dst_buf->v4l2_buf.timecode = src_buf->v4l2_buf.timecode;
-               dst_buf->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
-               dst_buf->v4l2_buf.flags |= src_buf->v4l2_buf.flags &
+               dst_buf->field = src_buf->field;
+               dst_buf->timestamp = src_buf->timestamp;
+               if (src_buf->flags & V4L2_BUF_FLAG_TIMECODE)
+                       dst_buf->timecode = src_buf->timecode;
+               dst_buf->flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
+               dst_buf->flags |= src_buf->flags &
                                        V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
-               dst_buf->v4l2_buf.flags = src_buf->v4l2_buf.flags &
+               dst_buf->flags = src_buf->flags &
                        (V4L2_BUF_FLAG_TIMECODE | V4L2_BUF_FLAG_KEYFRAME |
                         V4L2_BUF_FLAG_PFRAME | V4L2_BUF_FLAG_BFRAME |
                         V4L2_BUF_FLAG_TSTAMP_SRC_MASK);
This page took 0.054454 seconds and 5 git commands to generate.