Hi Ben
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.
Thank you for your comment. I understand your opinion. But, I don't want to use such style for DMA IMO.
You know R-Car sound is very complex IP collection. And user want to use it as several patterns. If SSI nodes has its specific DMA setting, this means SRC/DVC needs to have same style too.
The DMA entry for SSI/SRC/DVC depends on data path. This means, user *must* understand which IP can use which DMA. (You know, R-Car sound uses Audio DMAC/Audio DMAC peri peri, and the pattern/use case is very complex) And, user must care his DAI too. If user failed his settings (= DAI and DMA entry for SSI/SRC/DVC), someone (maybe me) needs to explain how R-Car sound is complex. Then ask his DAI settings, research DMA settings, and answer. This will happen for all user/integrater. But, I don't want it :P
* all settings must be correct * * but, it is difficult for user/beginner *
playback = <&ssi0 &src1 &dvc0>;
&ssi0 { dmas = <xxx>, dma-names = xxx }; &src1 { dmas = <xxx>, dma-names = xxx }; &dvc0 { dmas = <xxx>, dma-names = xxx };
Indeed above case needs many DMA entries on SoC DTSI file, but, DMA entry for SSI/SRC/DVC will be decided automatically. This case, user cares DAI only, it is very easy IMO.
* user care only his DAI setting *
playback = <&ssi0 &src1 &dvc0>;
* it is very easy to exchange DAI setting *
playback = <&ssi0 &src3>;