About Cleanup ASoC

Amadeusz Sławiński amadeuszx.slawinski at linux.intel.com
Thu May 26 11:57:26 CEST 2022


On 5/26/2022 4:13 AM, Kuninori Morimoto wrote:
> 
> Hi Pierre-Louis
> 
> Thank you for your feedback
> 
>>> 	+-- basic board --------+
>>> 	|+--------+             |
>>> 	|| CPU ch0| <--> CodecA |
>>> 	||     ch1| <-+         |
>>> 	|+--------+   |         |
>>> 	+-------------|---------+
>>>
>>> 	+-- expansion board ----+
>>> 	|             |         |
>>> 	|             +-> CodecB|
>>> 	+-----------------------+
> (snip)
>>> I'm not sure how to count the Card, but
>>> "basic     board sound" is 1st card,
>>> "expansion board sound" is 2nd card for us in intuitively.
> (snip)
>> did you mean 'channels' or 'streams'?
> (snip)
>> If however the 'ch0' and 'ch1' can be independent content then this
>> configuration would make sense indeed, and it would be quite similar to
>> the ideas on the Intel side.
> 
> These are independent sounds.
> It is working for us if we merge these into one Cards, but...
> I'm OK and will do nothing if no one want to have multi Card connection.
> but I'm happy to work for it if someone needs it.

Well, this sounds like what we did in avs, namely we split cards 
separately based on endpoint. Main driver decides what endpoints to 
expose, based on ACPI detection and ACPI match rules, see [1]. For 
example in our model it is possible to have 2 separate i2s codecs 
connected and each having its own card. From avs driver we expose 
snd_soc_dai_driver with 2 streams (playback and capture), see [2] and 
then tell machine driver to just connect them to codec [3] - look for 
"SSP%d Pin", "ssp%d Tx" and "ssp%d Rx". Connections between "ssp%d 
Tx"/"ssp%d Rx" and userspace FE are handled by topology in our case, but 
should be easy to expose without it, if you don't use topologies.


[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/tree/sound/soc/intel/avs/board_selection.c
[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/tree/sound/soc/intel/avs/pcm.c#n946
[3] 
https://lore.kernel.org/alsa-devel/20220511162403.3987658-8-cezary.rojewski@intel.com/T/#u


More information about the Alsa-devel mailing list