From: Philipp Zabel Date: Thu, 7 Dec 2017 14:59:51 +0000 (-0500) Subject: media: coda: use correct offset for mpeg4 decoder mvcol buffer X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=645838b51962e457250569d0fbe435d13792b93f;p=openwrt%2Fstaging%2Fblogic.git media: coda: use correct offset for mpeg4 decoder mvcol buffer The mvcol buffer needs to be placed behind the chroma plane(s) when decoding MPEG-4, same as for the h.264 decoder. Use the real offset with the required rounding. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/coda/coda-bit.c b/drivers/media/platform/coda/coda-bit.c index 32db1227d025..9fe113cb901f 100644 --- a/drivers/media/platform/coda/coda-bit.c +++ b/drivers/media/platform/coda/coda-bit.c @@ -455,18 +455,16 @@ static int coda_alloc_framebuffers(struct coda_ctx *ctx, coda_parabuf_write(ctx, i * 3 + 1, cb); coda_parabuf_write(ctx, i * 3 + 2, cr); - /* mvcol buffer for h.264 */ - if (ctx->codec->src_fourcc == V4L2_PIX_FMT_H264 && - dev->devtype->product != CODA_DX6) + if (dev->devtype->product == CODA_DX6) + continue; + + /* mvcol buffer for h.264 and mpeg4 */ + if (ctx->codec->src_fourcc == V4L2_PIX_FMT_H264) coda_parabuf_write(ctx, 96 + i, mvcol); + if (ctx->codec->src_fourcc == V4L2_PIX_FMT_MPEG4 && i == 0) + coda_parabuf_write(ctx, 97, mvcol); } - /* mvcol buffer for mpeg4 */ - if ((dev->devtype->product != CODA_DX6) && - (ctx->codec->src_fourcc == V4L2_PIX_FMT_MPEG4)) - coda_parabuf_write(ctx, 97, ctx->internal_frames[0].paddr + - ysize + ysize/4 + ysize/4); - return 0; }