[PATCH 05/16] gpu: ipu-v3: Add IDMA channel linking support

Philipp Zabel p.zabel at pengutronix.de
Fri Jul 8 17:34:35 UTC 2016


Am Donnerstag, den 07.07.2016, 16:03 -0700 schrieb Steve Longerbeam:
> Adds functions to link and unlink IDMAC source channels to sink
> channels.
> 
> So far the following links are supported:
> 
> IPUV3_CHANNEL_IC_PRP_ENC_MEM -> IPUV3_CHANNEL_MEM_ROT_ENC
> PUV3_CHANNEL_IC_PRP_VF_MEM   -> IPUV3_CHANNEL_MEM_ROT_VF
> IPUV3_CHANNEL_IC_PP_MEM      -> IPUV3_CHANNEL_MEM_ROT_PP
> 
> More links can be added to the idmac_link_info[] array.
> 
> Signed-off-by: Steve Longerbeam <steve_longerbeam at mentor.com>
> ---
>  drivers/gpu/ipu-v3/ipu-common.c | 112 ++++++++++++++++++++++++++++++++++++++++
>  include/video/imx-ipu-v3.h      |   3 ++
>  2 files changed, 115 insertions(+)
> 
> diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
> index 49af121..6d1676e 100644
> --- a/drivers/gpu/ipu-v3/ipu-common.c
> +++ b/drivers/gpu/ipu-v3/ipu-common.c
> @@ -730,6 +730,118 @@ void ipu_set_ic_src_mux(struct ipu_soc *ipu, int csi_id, bool vdi)
>  }
>  EXPORT_SYMBOL_GPL(ipu_set_ic_src_mux);
>  
> +
> +/* IDMAC Channel Linking */
> +
> +struct idmac_link_reg_info {
> +	int chno;
> +	u32 reg;
> +	int shift;
> +	int bits;
> +	u32 sel;
> +};
> +
> +struct idmac_link_info {
> +	struct idmac_link_reg_info src;
> +	struct idmac_link_reg_info sink;
> +};
> +
> +static const struct idmac_link_info idmac_link_info[] = {
> +	{
> +		.src  = { 20, IPU_FS_PROC_FLOW1,  0, 4, 7 },
> +		.sink = { 45, IPU_FS_PROC_FLOW2,  0, 4, 1 },

Please use the defines here:
	IPUV3_CHANNEL_IC_PRP_ENC_MEM
	IPUV3_CHANNEL_MEM_ROT_ENC

> +	}, {
> +		.src =  { 21, IPU_FS_PROC_FLOW1,  8, 4, 8 },
> +		.sink = { 46, IPU_FS_PROC_FLOW2,  4, 4, 1 },

and so on.

> +	}, {
> +		.src =  { 22, IPU_FS_PROC_FLOW1, 16, 4, 5 },
> +		.sink = { 47, IPU_FS_PROC_FLOW2, 12, 4, 3 },
> +	},
> +};
[...]

regards
Philipp



More information about the dri-devel mailing list