Hi Jiada
Thank you for your patch
in GEN3 SSI may use different BUSIF for data transfer, this patch adds busif property to each dai stream, to indicate the BUSIF used by playback/capture stream.
Also adds rsnd_ssi_select_busif() to automatically select BUSIF (currently only BUSIF0 is selected)
Signed-off-by: Jiada Wang jiada_wang@mentor.com
sound/soc/sh/rcar/core.c | 3 +++ sound/soc/sh/rcar/dma.c | 31 +++++++++++++++++++++++++++++++ sound/soc/sh/rcar/rsnd.h | 3 +++ sound/soc/sh/rcar/ssi.c | 30 +++++++++++++++++++++++++++++- 4 files changed, 66 insertions(+), 1 deletion(-)
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 40d7dc4f7839..5e3e6e65bcdf 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -1158,6 +1158,9 @@ static int rsnd_hw_params(struct snd_pcm_substream *substream, struct rsnd_dai *rdai = rsnd_dai_to_rdai(dai); struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream); int ret;
- int chan = rsnd_runtime_channel_for_ssi_with_params(io, hw_params);
- rsnd_ssi_select_busif(io, chan);
If my understanding was correct, the chance to use BUSIFx is when TDM split mode. And this patch selects it on runtime (= hw_param) ? But, I think we can/should select it on probe timing from DT connection. Am I misunderstanding ?
I'm not sure how to select, but adding new ssiuX0 - ssiuX7 is realistic idea (parse sound card is not realistic...) ? If so, your rxu/txu DMA can be more simple ?