]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] coda: move BIT processor command execution out of pic_run_work
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 23 Jul 2014 15:28:41 +0000 (12:28 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 21 Aug 2014 20:25:21 +0000 (15:25 -0500)
In preparation for the split, move the AXI_SRAM_USE register access and the
PIC_RUN command execution out of pic_run_work into prepare_encode/decode.

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

index 07c132485d8ffd55367fadd7b5a6bc7aefa9f15f..3e6bcca45be6b6a433242fa8279f2a59eb26539a 100644 (file)
@@ -1038,6 +1038,13 @@ static int coda_prepare_decode(struct coda_ctx *ctx)
        coda_write(dev, 0, CODA_CMD_DEC_PIC_BB_START);
        coda_write(dev, 0, CODA_CMD_DEC_PIC_START_BYTE);
 
+       if (dev->devtype->product != CODA_DX6)
+               coda_write(dev, ctx->iram_info.axi_sram_use,
+                               CODA7_REG_BIT_AXI_SRAM_USE);
+
+       coda_kfifo_sync_to_device_full(ctx);
+       coda_command_async(ctx, CODA_COMMAND_PIC_RUN);
+
        return 0;
 }
 
@@ -1184,6 +1191,12 @@ static int coda_prepare_encode(struct coda_ctx *ctx)
                coda_write(dev, ctx->bit_stream_param, CODA_REG_BIT_BIT_STREAM_PARAM);
        }
 
+       if (dev->devtype->product != CODA_DX6)
+               coda_write(dev, ctx->iram_info.axi_sram_use,
+                               CODA7_REG_BIT_AXI_SRAM_USE);
+
+       coda_command_async(ctx, CODA_COMMAND_PIC_RUN);
+
        return 0;
 }
 
@@ -1243,14 +1256,6 @@ static void coda_pic_run_work(struct work_struct *work)
                return;
        }
 
-       if (dev->devtype->product != CODA_DX6)
-               coda_write(dev, ctx->iram_info.axi_sram_use,
-                               CODA7_REG_BIT_AXI_SRAM_USE);
-
-       if (ctx->inst_type == CODA_INST_DECODER)
-               coda_kfifo_sync_to_device_full(ctx);
-       coda_command_async(ctx, CODA_COMMAND_PIC_RUN);
-
        if (!wait_for_completion_timeout(&ctx->completion, msecs_to_jiffies(1000))) {
                dev_err(&dev->plat_dev->dev, "CODA PIC_RUN timeout\n");