[alsa-devel] Different codecs for playback and capture?

Ricard Wanderlof ricard.wanderlof at axis.com
Thu Jun 4 13:46:51 CEST 2015


On Wed, 3 Jun 2015, Lars-Peter Clausen wrote:

> There has been support for multiple CODECs on the same DAI link for a while 
> now. Have a look at 
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=88bd870f02dff5c9445286e185f21873f25a977f.
> 
> Instead of setting the codec_name/codec_dai_name fields in the dai_link 
> create a snd_soc_link_component array with a entry for each of the CODECs 
> and assign that to the codecs field in the DAI link.
> 
> I'm not too sure how well it works if one CODEC is playback only and the 
> other is capture only and there might be some issues. But this is the way to 
> go and if there are problems fix them.

It doesn't seem as if snd_soc_dai_link_component is used in any (in-tree) 
driver; a grep in sound/soc just returns soc-core.c . Perhaps some 
out-of-tree driver has been used to test it?

How are the different component codecs accessed when accessing the device? 
Or does this happen automatically? For instance, normally I would register 
one card with the single dai and coec, which would come up as #0, so I 
could access the resulting device with hw:0,0 . But when I have two codecs 
on the same dai_link, what mechanism does ALSA use to differentiate 
between the two? Or is it supposed to happen automatically depending on 
the capabilities of the respective codecs.

/Ricard
-- 
Ricard Wolf Wanderlöf                           ricardw(at)axis.com
Axis Communications AB, Lund, Sweden            www.axis.com
Phone +46 46 272 2016                           Fax +46 46 13 61 30


More information about the Alsa-devel mailing list