Hi Cezary
Thank you for your feedback
+-- DeviceA --+ +-- DeviceB -+ |+-----------+| |+----------+| ||ComponentA1|| ||ComponentB|| || [DAI] <-> [DAI] || Card-1 |+-----------+| |+----------+| | | +------------+ | | | | +-- DeviceC -+ |+-----------+| |+----------+| ||ComponentA2|| ||ComponentC|| || [DAI] <-> [DAI] || Card-2 |+-----------+| |+----------+| +-------------+ +------------+
If [DeviceA] could separate feature into [ComponentA1] and [ComponentA2], it can use multi Cards on current ASoC, but it is not a generic solution, as Pierre-Louis explained. I can agree about it if my understanding was correct. At least my Sound can't use this style.
Hello Kuninori,
Could you explain what you meant by "my Sound"? Perhaps you could also share location of problematic bits in your driver (file path + code lines)? I'd like to take a look - if possible, that is - to better understand your issue.
Thanks. "my Sound" mean "my sound driver". The Device image is like this
+-- DeviceA --+ |+-----------+| ||Component || || [DAI] || [DAI] ... || [DAI] || [DAI] |+-----------+| +-------------+
It calls devm_snd_soc_register_component() here. Number of DAIs = rsnd_rdai_nr(priv) is based on the SoC (= DT settings), but these are same DAI. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/soc/sh/rcar/core.c?h=v5.18#n1923
The DAIs are setuped here. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/soc/sh/rcar/core.c?h=v5.18#n1350
Component driver is here https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/soc/sh/rcar/core.c?h=v5.18#n1810
DAI ops is here https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/soc/sh/rcar/core.c?h=v5.18#n1067
Please let me know if something was not understandable.
Thank you for your help !!
Best regards --- Kuninori Morimoto