[alsa-devel] [PATCH 01/12] ASoC: Create codec DAPM widgets before calling the codecs probe function
Liam Girdwood
lrg at slimlogic.co.uk
Sat May 7 20:11:00 CEST 2011
On Thu, 2011-05-05 at 16:59 +0200, Lars-Peter Clausen wrote:
> This allows to create DAPM routes depending on those widgets in the codecs probe
> function.
> This is helpful when supporting similar codecs with minor differences in the DAPM
> routing with the same driver.
>
> Something similar has already been done for cards in commit a841ebb9(ASoC: Create
> card DAPM widgets early so they can be used in callbacks)
>
> Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
These look all OK but I'm not fully following your commit message above
with moving the call to snd_soc_dapm_new_controls() below. Could you
explain why moving the call fixes your issue.
> ---
> sound/soc/soc-core.c | 7 ++++---
> 1 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 133edeb..a477e21 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -1495,6 +1495,10 @@ static int soc_probe_codec(struct snd_soc_card *card,
>
> soc_init_codec_debugfs(codec);
>
> + if (driver->dapm_widgets)
> + snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
> + driver->num_dapm_widgets);
> +
> if (driver->probe) {
> ret = driver->probe(codec);
> if (ret < 0) {
> @@ -1508,9 +1512,6 @@ static int soc_probe_codec(struct snd_soc_card *card,
> if (driver->controls)
> snd_soc_add_controls(codec, driver->controls,
> driver->num_controls);
> - if (driver->dapm_widgets)
> - snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
> - driver->num_dapm_widgets);
> if (driver->dapm_routes)
> snd_soc_dapm_add_routes(&codec->dapm, driver->dapm_routes,
> driver->num_dapm_routes);
More information about the Alsa-devel
mailing list