media: vicodec: add field 'buf' to fwht_raw_frame
authorDafna Hirschfeld <dafna3@gmail.com>
Wed, 6 Mar 2019 21:13:31 +0000 (16:13 -0500)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 25 Mar 2019 17:44:54 +0000 (13:44 -0400)
Add the field 'buf' to fwht_raw_frame to indicate
the start of the raw frame buffer.
This field will be used to copy the capture buffer
to the reference buffer in the next patch.

Signed-off-by: Dafna Hirschfeld <dafna3@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vicodec/codec-fwht.h
drivers/media/platform/vicodec/vicodec-core.c

index c410512d47c5966c5104d0cf30955aac4aa9a313..8f0b790839f8f719d1d45aa58dad68cb73f094ec 100644 (file)
@@ -124,6 +124,7 @@ struct fwht_raw_frame {
        unsigned int luma_alpha_step;
        unsigned int chroma_step;
        unsigned int components_num;
+       u8 *buf;
        u8 *luma, *cb, *cr, *alpha;
 };
 
index 41e09b558a8860d739c5b5adbd63bd8e2a202ce4..467352d716746cde81bedb87cf3aaf56dea34bdb 100644 (file)
@@ -1366,7 +1366,8 @@ static int vicodec_start_streaming(struct vb2_queue *q,
        state->stride = q_data->coded_width *
                                info->bytesperline_mult;
 
-       state->ref_frame.luma = kvmalloc(total_planes_size, GFP_KERNEL);
+       state->ref_frame.buf = kvmalloc(total_planes_size, GFP_KERNEL);
+       state->ref_frame.luma = state->ref_frame.buf;
        ctx->comp_max_size = total_planes_size;
        new_comp_frame = kvmalloc(ctx->comp_max_size, GFP_KERNEL);
 
@@ -1415,7 +1416,9 @@ static void vicodec_stop_streaming(struct vb2_queue *q)
 
        if ((!V4L2_TYPE_IS_OUTPUT(q->type) && !ctx->is_enc) ||
            (V4L2_TYPE_IS_OUTPUT(q->type) && ctx->is_enc)) {
-               kvfree(ctx->state.ref_frame.luma);
+               kvfree(ctx->state.ref_frame.buf);
+               ctx->state.ref_frame.buf = NULL;
+               ctx->state.ref_frame.luma = NULL;
                ctx->comp_max_size = 0;
                ctx->source_changed = false;
        }