[media] coda: simplify frame memory control register handling
authorPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 29 Sep 2014 12:53:46 +0000 (09:53 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 28 Oct 2014 16:29:56 +0000 (14:29 -0200)
Since the firmware newer writes to FRAME_MEM_CTRL, we can initialize it once
per context (incidentally, we already do write it in coda_hw_init) and never
have to read it back.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/platform/coda/coda-bit.c
drivers/media/platform/coda/coda-common.c

index 747b54405bf10b2278aafb0427d9951d2f145865..3839e3507628e17dc08361d22a5cb24eed3f0ec1 100644 (file)
@@ -729,10 +729,7 @@ static int coda_start_encoding(struct coda_ctx *ctx)
                break;
        }
 
-       value = coda_read(dev, CODA_REG_BIT_FRAME_MEM_CTRL);
-       value &= ~(1 << 2 | 0x7 << 9);
-       ctx->frame_mem_ctrl = value;
-       coda_write(dev, value, CODA_REG_BIT_FRAME_MEM_CTRL);
+       coda_write(dev, ctx->frame_mem_ctrl, CODA_REG_BIT_FRAME_MEM_CTRL);
 
        if (dev->devtype->product == CODA_DX6) {
                /* Configure the coda */
@@ -741,6 +738,7 @@ static int coda_start_encoding(struct coda_ctx *ctx)
        }
 
        /* Could set rotation here if needed */
+       value = 0;
        switch (dev->devtype->product) {
        case CODA_DX6:
                value = (q_data_src->width & CODADX6_PICWIDTH_MASK)
@@ -1296,6 +1294,8 @@ static int __coda_start_decoding(struct coda_ctx *ctx)
        /* Update coda bitstream read and write pointers from kfifo */
        coda_kfifo_sync_to_device_full(ctx);
 
+       coda_write(dev, ctx->frame_mem_ctrl, CODA_REG_BIT_FRAME_MEM_CTRL);
+
        ctx->display_idx = -1;
        ctx->frm_dis_flg = 0;
        coda_write(dev, 0, CODA_REG_BIT_FRM_DIS_FLG(ctx->reg_idx));
index fac25170c4c3ac419bfa2888c17923d7e33a0202..feb270f2860b336ff14b304e7c5b17cae143b8df 100644 (file)
@@ -1423,8 +1423,10 @@ static int coda_open(struct file *file, enum coda_inst_type inst_type,
        ctx->dev = dev;
        ctx->idx = idx;
        switch (dev->devtype->product) {
-       case CODA_7541:
        case CODA_960:
+               ctx->frame_mem_ctrl = 1 << 12;
+               /* fallthrough */
+       case CODA_7541:
                ctx->reg_idx = 0;
                break;
        default: