[alsa-devel] [PATCH 5/6] ASoC: rsnd: care DMA slave channel name for DT

Ben Dooks ben.dooks at codethink.co.uk
Mon Jun 2 23:33:45 CEST 2014


On 23/05/14 07:25, Kuninori Morimoto wrote:
> Renesas sound driver is supporting to use DMAEngine.
> But, DMA slave channel name "tx", "rx" is not enough
> in DT case.
> Becuase, it has many ports and path combination.
> 
> This patch adds rsnd_dma_of_name() to find
> DMA channel name, for example
> memory to SSI0 is "mem_ssi0",
> SSI0 to memory is "ssi0_mem",
> SSI0 to SRC0   is "ssi0_src0",
> SRC0 to SSI0   is "src0_ssi0",
> SRC0 to DVC0   is "src0_dvc0"...

I commented on another patch where the ssiX nodes are not being
used, this would be so much nicer if we removed the ssiX from the
name and used the of-pointer for the ssiX node to lookup the DMA...

This is going to produce a hugh list of DMA entries that are going
to be difficult to manage.

> Renesas sound want to use PIO transfer mode for some reasons.
> It will be PIO tranfer mode if device node doesn't have
> DMA settings.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
>  .../devicetree/bindings/sound/renesas,rsnd.txt     |    1 +
>  sound/soc/sh/rcar/core.c                           |   80 +++++++++++++++++++-
>  sound/soc/sh/rcar/ssi.c                            |    6 ++
>  3 files changed, 86 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
> index a44e917..8346cab 100644
> --- a/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
> +++ b/Documentation/devicetree/bindings/sound/renesas,rsnd.txt
> @@ -20,6 +20,7 @@ Required properties:
>  SSI subnode properties:
>  - interrupts			: Should contain SSI interrupt for PIO transfer
>  - shared-pin			: if shared clock pin
> +- pio-transfer			: use PIO transfer mode
>  
>  SRC subnode properties:
>  no properties at this poin

> diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
> index 2d94a62..e0a4ba7 100644
> --- a/sound/soc/sh/rcar/ssi.c
> +++ b/sound/soc/sh/rcar/ssi.c
> @@ -589,6 +589,12 @@ static void rsnd_of_parse_ssi(struct platform_device *pdev,
>  		 * irq
>  		 */
>  		ssi_info->pio_irq = irq_of_parse_and_map(np, 0);
> +
> +		/*
> +		 * DMA
> +		 */
> +		ssi_info->dma_id = of_get_property(np, "pio-transfer", NULL) ?
> +			0 : 1;

How about checking for the dma node, and if no present?

-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius


More information about the Alsa-devel mailing list