media: coda: store unmasked fifo position in meta
authorPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 5 Nov 2018 15:25:00 +0000 (10:25 -0500)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 23 Nov 2018 10:21:37 +0000 (05:21 -0500)
Storing the unmasked kfifo->in position as meta->start and ->end allows
to more easily compare a point past meta->end with the current
kfifo->in.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/coda/coda-bit.c
drivers/media/platform/coda/coda-common.c
drivers/media/platform/coda/coda.h
drivers/media/platform/coda/trace.h

index d26c2d85a009463a708208a342b9d86e4e50edfc..e5ce0bec8ec39f133b518d2c0be82f62f1ff1d06 100644 (file)
@@ -299,8 +299,7 @@ void coda_fill_bitstream(struct coda_ctx *ctx, struct list_head *buffer_list)
                }
 
                /* Buffer start position */
-               start = ctx->bitstream_fifo.kfifo.in &
-                       ctx->bitstream_fifo.kfifo.mask;
+               start = ctx->bitstream_fifo.kfifo.in;
 
                if (coda_bitstream_try_queue(ctx, src_buf)) {
                        /*
@@ -315,8 +314,7 @@ void coda_fill_bitstream(struct coda_ctx *ctx, struct list_head *buffer_list)
                                meta->timecode = src_buf->timecode;
                                meta->timestamp = src_buf->vb2_buf.timestamp;
                                meta->start = start;
-                               meta->end = ctx->bitstream_fifo.kfifo.in &
-                                           ctx->bitstream_fifo.kfifo.mask;
+                               meta->end = ctx->bitstream_fifo.kfifo.in;
                                spin_lock_irqsave(&ctx->buffer_meta_lock,
                                                  flags);
                                list_add_tail(&meta->list,
@@ -1980,8 +1978,7 @@ static int coda_prepare_decode(struct coda_ctx *ctx)
        if (meta && ctx->codec->src_fourcc == V4L2_PIX_FMT_JPEG) {
 
                /* If this is the last buffer in the bitstream, add padding */
-               if (meta->end == (ctx->bitstream_fifo.kfifo.in &
-                                 ctx->bitstream_fifo.kfifo.mask)) {
+               if (meta->end == ctx->bitstream_fifo.kfifo.in) {
                        static unsigned char buf[512];
                        unsigned int pad;
 
index 547acf80c89de72a5f29b585478469b77ab0d89b..fbb8967dd2aa66a3ea9df6f52ba6a8b2bb135a2d 100644 (file)
@@ -1298,7 +1298,6 @@ static int coda_job_ready(void *m2m_priv)
                        return 0;
                }
 
-
                if (!src_bufs && !stream_end &&
                    (coda_get_bitstream_payload(ctx) < 512)) {
                        v4l2_dbg(1, coda_debug, &ctx->dev->v4l2_dev,
index 680c7035c9d4b914992816d4ffaaf5bca4ce5f8c..baa04b0f21fba029a0ecf64195f018a9db7a7695 100644 (file)
@@ -145,8 +145,8 @@ struct coda_buffer_meta {
        u32                     sequence;
        struct v4l2_timecode    timecode;
        u64                     timestamp;
-       u32                     start;
-       u32                     end;
+       unsigned int            start;
+       unsigned int            end;
 };
 
 /* Per-queue, driver-specific private data */
index ca671e315ad059d9af17f704f24ab90ce5a6c4ac..a672bfc4c6ba92dcdffe38891198981ebf399a8a 100644 (file)
@@ -97,8 +97,8 @@ DECLARE_EVENT_CLASS(coda_buf_meta_class,
        TP_fast_assign(
                __entry->minor = ctx->fh.vdev->minor;
                __entry->index = buf->vb2_buf.index;
-               __entry->start = meta->start;
-               __entry->end = meta->end;
+               __entry->start = meta->start & ctx->bitstream_fifo.kfifo.mask;
+               __entry->end = meta->end & ctx->bitstream_fifo.kfifo.mask;
                __entry->ctx = ctx->idx;
        ),
 
@@ -127,8 +127,10 @@ DECLARE_EVENT_CLASS(coda_meta_class,
 
        TP_fast_assign(
                __entry->minor = ctx->fh.vdev->minor;
-               __entry->start = meta ? meta->start : 0;
-               __entry->end = meta ? meta->end : 0;
+               __entry->start = meta ? (meta->start &
+                                        ctx->bitstream_fifo.kfifo.mask) : 0;
+               __entry->end = meta ? (meta->end &
+                                      ctx->bitstream_fifo.kfifo.mask) : 0;
                __entry->ctx = ctx->idx;
        ),