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

From: Philipp Zabel
Date: Fri Jul 08 2016 - 13:35:13 EST


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@xxxxxxxxxx>
> ---
> 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