Re: [PATCH 07/28] media: ti-vpe: cal: add cal_ctx_prepare/unprepare

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tomi,

Thank you for the patch.

On Mon, Apr 12, 2021 at 02:34:36PM +0300, Tomi Valkeinen wrote:
> In the following patches we need to do context configuration which might
> fail. Add new functions, cal_ctx_prepare and cal_ctx_unprepare, to
> handle such configuration.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx>

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

> ---
>  drivers/media/platform/ti-vpe/cal-video.c |  9 +++++++++
>  drivers/media/platform/ti-vpe/cal.c       | 10 ++++++++++
>  drivers/media/platform/ti-vpe/cal.h       |  2 ++
>  3 files changed, 21 insertions(+)
> 
> diff --git a/drivers/media/platform/ti-vpe/cal-video.c b/drivers/media/platform/ti-vpe/cal-video.c
> index cf603cc9114c..8e9bbe6beb23 100644
> --- a/drivers/media/platform/ti-vpe/cal-video.c
> +++ b/drivers/media/platform/ti-vpe/cal-video.c
> @@ -708,6 +708,12 @@ static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
>  		goto error_pipeline;
>  	}
>  
> +	ret = cal_ctx_prepare(ctx);
> +	if (ret) {
> +		ctx_err(ctx, "Failed to prepare context: %d\n", ret);
> +		goto error_pipeline;
> +	}
> +
>  	spin_lock_irq(&ctx->dma.lock);
>  	buf = list_first_entry(&ctx->dma.queue, struct cal_buffer, list);
>  	ctx->dma.pending = buf;
> @@ -733,6 +739,7 @@ static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
>  error_stop:
>  	cal_ctx_stop(ctx);
>  	pm_runtime_put_sync(ctx->cal->dev);
> +	cal_ctx_unprepare(ctx);
>  
>  error_pipeline:
>  	media_pipeline_stop(&ctx->vdev.entity);
> @@ -752,6 +759,8 @@ static void cal_stop_streaming(struct vb2_queue *vq)
>  
>  	pm_runtime_put_sync(ctx->cal->dev);
>  
> +	cal_ctx_unprepare(ctx);
> +
>  	cal_release_buffers(ctx, VB2_BUF_STATE_ERROR);
>  
>  	media_pipeline_stop(&ctx->vdev.entity);
> diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c
> index b539a9afb3f5..3d57aedbee0a 100644
> --- a/drivers/media/platform/ti-vpe/cal.c
> +++ b/drivers/media/platform/ti-vpe/cal.c
> @@ -430,6 +430,16 @@ static bool cal_ctx_wr_dma_stopped(struct cal_ctx *ctx)
>  	return stopped;
>  }
>  
> +int cal_ctx_prepare(struct cal_ctx *ctx)
> +{
> +	return 0;
> +}
> +
> +void cal_ctx_unprepare(struct cal_ctx *ctx)
> +{
> +
> +}
> +
>  void cal_ctx_start(struct cal_ctx *ctx)
>  {
>  	ctx->sequence = 0;
> diff --git a/drivers/media/platform/ti-vpe/cal.h b/drivers/media/platform/ti-vpe/cal.h
> index af46084580bd..09ad20faa9e1 100644
> --- a/drivers/media/platform/ti-vpe/cal.h
> +++ b/drivers/media/platform/ti-vpe/cal.h
> @@ -296,6 +296,8 @@ struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal,
>  					 unsigned int instance);
>  void cal_camerarx_destroy(struct cal_camerarx *phy);
>  
> +int cal_ctx_prepare(struct cal_ctx *ctx);
> +void cal_ctx_unprepare(struct cal_ctx *ctx);
>  void cal_ctx_set_dma_addr(struct cal_ctx *ctx, dma_addr_t addr);
>  void cal_ctx_start(struct cal_ctx *ctx);
>  void cal_ctx_stop(struct cal_ctx *ctx);

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux