diff mbox series

[05/28] media: ti-vpe: cal: move global config from cal_ctx_wr_dma_config to runtime resume

Message ID 20210412113457.328012-6-tomi.valkeinen@ideasonboard.com (mailing list archive)
State New, archived
Headers show
Series media: ti-vpe: cal: prepare for multistream support | expand

Commit Message

Tomi Valkeinen April 12, 2021, 11:34 a.m. UTC
For some reason CAL_CTRL is written at the end of cal_ctx_wr_dma_config.
CAL_CTRL is a global (for CAL) register, so it should be independent of
contexts.

Move the code to cal_runtime_resume().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 drivers/media/platform/ti-vpe/cal.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

Comments

Laurent Pinchart April 17, 2021, 11:27 p.m. UTC | #1
Hi Tomi,

Thank you for the patch.

On Mon, Apr 12, 2021 at 02:34:34PM +0300, Tomi Valkeinen wrote:
> For some reason CAL_CTRL is written at the end of cal_ctx_wr_dma_config.
> CAL_CTRL is a global (for CAL) register, so it should be independent of
> contexts.
> 
> Move the code to cal_runtime_resume().
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
> ---
>  drivers/media/platform/ti-vpe/cal.c | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c
> index a5340b583592..b539a9afb3f5 100644
> --- a/drivers/media/platform/ti-vpe/cal.c
> +++ b/drivers/media/platform/ti-vpe/cal.c
> @@ -403,17 +403,6 @@ static void cal_ctx_wr_dma_config(struct cal_ctx *ctx)
>  	cal_write(ctx->cal, CAL_WR_DMA_XSIZE(ctx->index), val);
>  	ctx_dbg(3, ctx, "CAL_WR_DMA_XSIZE(%d) = 0x%08x\n", ctx->index,
>  		cal_read(ctx->cal, CAL_WR_DMA_XSIZE(ctx->index)));
> -
> -	val = cal_read(ctx->cal, CAL_CTRL);
> -	cal_set_field(&val, CAL_CTRL_BURSTSIZE_BURST128,
> -		      CAL_CTRL_BURSTSIZE_MASK);
> -	cal_set_field(&val, 0xF, CAL_CTRL_TAGCNT_MASK);
> -	cal_set_field(&val, CAL_CTRL_POSTED_WRITES_NONPOSTED,
> -		      CAL_CTRL_POSTED_WRITES_MASK);
> -	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGL_MASK);
> -	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGH_MASK);
> -	cal_write(ctx->cal, CAL_CTRL, val);
> -	ctx_dbg(3, ctx, "CAL_CTRL = 0x%08x\n", cal_read(ctx->cal, CAL_CTRL));
>  }
>  
>  void cal_ctx_set_dma_addr(struct cal_ctx *ctx, dma_addr_t addr)
> @@ -1125,6 +1114,7 @@ static int cal_runtime_resume(struct device *dev)
>  {
>  	struct cal_dev *cal = dev_get_drvdata(dev);
>  	unsigned int i;
> +	u32 val;
>  
>  	if (cal->data->flags & DRA72_CAL_PRE_ES2_LDO_DISABLE) {
>  		/*
> @@ -1141,6 +1131,17 @@ static int cal_runtime_resume(struct device *dev)
>  	 */
>  	cal_write(cal, CAL_HL_IRQENABLE_SET(0), CAL_HL_IRQ_OCPO_ERR_MASK);
>  
> +	val = cal_read(cal, CAL_CTRL);
> +	cal_set_field(&val, CAL_CTRL_BURSTSIZE_BURST128,
> +		      CAL_CTRL_BURSTSIZE_MASK);
> +	cal_set_field(&val, 0xF, CAL_CTRL_TAGCNT_MASK);
> +	cal_set_field(&val, CAL_CTRL_POSTED_WRITES_NONPOSTED,
> +		      CAL_CTRL_POSTED_WRITES_MASK);
> +	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGL_MASK);
> +	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGH_MASK);
> +	cal_write(cal, CAL_CTRL, val);
> +	cal_dbg(3, cal, "CAL_CTRL = 0x%08x\n", cal_read(cal, CAL_CTRL));

While at it, could you turn the hex values to lower case ?

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> +
>  	return 0;
>  }
>
diff mbox series

Patch

diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c
index a5340b583592..b539a9afb3f5 100644
--- a/drivers/media/platform/ti-vpe/cal.c
+++ b/drivers/media/platform/ti-vpe/cal.c
@@ -403,17 +403,6 @@  static void cal_ctx_wr_dma_config(struct cal_ctx *ctx)
 	cal_write(ctx->cal, CAL_WR_DMA_XSIZE(ctx->index), val);
 	ctx_dbg(3, ctx, "CAL_WR_DMA_XSIZE(%d) = 0x%08x\n", ctx->index,
 		cal_read(ctx->cal, CAL_WR_DMA_XSIZE(ctx->index)));
-
-	val = cal_read(ctx->cal, CAL_CTRL);
-	cal_set_field(&val, CAL_CTRL_BURSTSIZE_BURST128,
-		      CAL_CTRL_BURSTSIZE_MASK);
-	cal_set_field(&val, 0xF, CAL_CTRL_TAGCNT_MASK);
-	cal_set_field(&val, CAL_CTRL_POSTED_WRITES_NONPOSTED,
-		      CAL_CTRL_POSTED_WRITES_MASK);
-	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGL_MASK);
-	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGH_MASK);
-	cal_write(ctx->cal, CAL_CTRL, val);
-	ctx_dbg(3, ctx, "CAL_CTRL = 0x%08x\n", cal_read(ctx->cal, CAL_CTRL));
 }
 
 void cal_ctx_set_dma_addr(struct cal_ctx *ctx, dma_addr_t addr)
@@ -1125,6 +1114,7 @@  static int cal_runtime_resume(struct device *dev)
 {
 	struct cal_dev *cal = dev_get_drvdata(dev);
 	unsigned int i;
+	u32 val;
 
 	if (cal->data->flags & DRA72_CAL_PRE_ES2_LDO_DISABLE) {
 		/*
@@ -1141,6 +1131,17 @@  static int cal_runtime_resume(struct device *dev)
 	 */
 	cal_write(cal, CAL_HL_IRQENABLE_SET(0), CAL_HL_IRQ_OCPO_ERR_MASK);
 
+	val = cal_read(cal, CAL_CTRL);
+	cal_set_field(&val, CAL_CTRL_BURSTSIZE_BURST128,
+		      CAL_CTRL_BURSTSIZE_MASK);
+	cal_set_field(&val, 0xF, CAL_CTRL_TAGCNT_MASK);
+	cal_set_field(&val, CAL_CTRL_POSTED_WRITES_NONPOSTED,
+		      CAL_CTRL_POSTED_WRITES_MASK);
+	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGL_MASK);
+	cal_set_field(&val, 0xFF, CAL_CTRL_MFLAGH_MASK);
+	cal_write(cal, CAL_CTRL, val);
+	cal_dbg(3, cal, "CAL_CTRL = 0x%08x\n", cal_read(cal, CAL_CTRL));
+
 	return 0;
 }