ASoC: Add support for optional auxiliary dailess codecs
authorJarkko Nikula <jhnikula@gmail.com>
Thu, 25 Nov 2010 15:47:38 +0000 (17:47 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 30 Nov 2010 14:39:00 +0000 (14:39 +0000)
commit2eea392d0a28a0a07d36a9da544eb40f81bf4cb6
tree6eebdb530c1d73fdf60cb0408f1f1808d47a6b20
parent09c74a9d0b0bedff16d0881db8cc0054a5e34f47
ASoC: Add support for optional auxiliary dailess codecs

This makes possible to register auxiliary dailess codecs in a machine
driver. Term dailess is used here for amplifiers and codecs without DAI or
DAI being unused.

Dailess auxiliary codecs are kept in struct snd_soc_aux_dev and those codecs
are probed after initializing the DAI links. There are no major differences
between DAI link codecs and dailess codecs in ASoC core point of view. DAPM
handles them equally and sysfs and debugfs directories for dailess codecs
are similar except the pmdown_time node is not created.

Only suspend and resume functions are modified to traverse all probed codecs
instead of DAI link codecs.

Example below shows a dailess codec registration.

struct snd_soc_aux_dev foo_aux_dev[] = {
{
.name = "Amp",
.codec_name = "codec.2",
.init = foo_init2,
},
};

static struct snd_soc_card card = {
...
.aux_dev = foo_aux_dev,
.num_aux_devs = ARRAY_SIZE(foo_aux_dev),
};

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
include/sound/soc.h
sound/soc/soc-core.c