[alsa-devel] [PATCH] ASoC: core: move DAI pre-links initiation to snd_soc_instantiate_card
Tzung-Bi Shih
tzungbi at google.com
Mon Jun 3 04:40:36 CEST 2019
Please ignore this patch.
On Thu, May 30, 2019 at 3:32 PM Tzung-Bi Shih <tzungbi at google.com> wrote:
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 2d3520fca613..82ff384753c7 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -2072,6 +2072,15 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
> mutex_lock(&client_mutex);
> mutex_lock_nested(&card->mutex, SND_SOC_CARD_CLASS_INIT);
>
> + for_each_card_prelinks(card, i, dai_link) {
> + ret = soc_init_dai_link(card, dai_link);
> + if (ret) {
> + dev_err(card->dev, "ASoC: failed to init link %s: %d\n",
> + dai_link->name, ret);
> + goto probe_end;
> + }
> + }
> +
> card->dapm.bias_level = SND_SOC_BIAS_OFF;
> card->dapm.dev = card->dev;
> card->dapm.card = card;
> @@ -2241,7 +2250,7 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
> snd_soc_dapm_sync(&card->dapm);
>
> probe_end:
> - if (ret < 0)
> + if (ret < 0 && ret != -EPROBE_DEFER)
> soc_cleanup_card_resources(card);
Should not call soc_cleanup_card_resources() if soc_init_dai_link()
returns fail. Some context has not initialized yet in the case.
>
> mutex_unlock(&card->mutex);
More information about the Alsa-devel
mailing list