ASoC: soc-core: merge snd_soc_bind_card() and snd_soc_instantiate_card()
having both soc_bind_card() and snd_soc_instantiate_card() is very confusable. Let's merge these. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87mud9hkwj.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
c6619b7298
commit
ed90c013a7
|
@ -1974,7 +1974,7 @@ static void soc_cleanup_card_resources(struct snd_soc_card *card)
|
|||
card->remove(card);
|
||||
}
|
||||
|
||||
static int snd_soc_instantiate_card(struct snd_soc_card *card)
|
||||
static int snd_soc_bind_card(struct snd_soc_card *card)
|
||||
{
|
||||
struct snd_soc_pcm_runtime *rtd;
|
||||
struct snd_soc_dai_link *dai_link;
|
||||
|
@ -2106,6 +2106,19 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
|
|||
dapm_mark_endpoints_dirty(card);
|
||||
snd_soc_dapm_sync(&card->dapm);
|
||||
|
||||
/* deactivate pins to sleep state */
|
||||
for_each_card_rtds(card, rtd) {
|
||||
struct snd_soc_dai *dai;
|
||||
|
||||
for_each_rtd_codec_dai(rtd, i, dai) {
|
||||
if (!dai->active)
|
||||
pinctrl_pm_select_sleep_state(dai->dev);
|
||||
}
|
||||
|
||||
if (!rtd->cpu_dai->active)
|
||||
pinctrl_pm_select_sleep_state(rtd->cpu_dai->dev);
|
||||
}
|
||||
|
||||
probe_end:
|
||||
if (ret < 0)
|
||||
soc_cleanup_card_resources(card);
|
||||
|
@ -2338,33 +2351,6 @@ int snd_soc_add_dai_controls(struct snd_soc_dai *dai,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(snd_soc_add_dai_controls);
|
||||
|
||||
static int snd_soc_bind_card(struct snd_soc_card *card)
|
||||
{
|
||||
struct snd_soc_pcm_runtime *rtd;
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_instantiate_card(card);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
|
||||
/* deactivate pins to sleep state */
|
||||
for_each_card_rtds(card, rtd) {
|
||||
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
|
||||
struct snd_soc_dai *codec_dai;
|
||||
int j;
|
||||
|
||||
for_each_rtd_codec_dai(rtd, j, codec_dai) {
|
||||
if (!codec_dai->active)
|
||||
pinctrl_pm_select_sleep_state(codec_dai->dev);
|
||||
}
|
||||
|
||||
if (!cpu_dai->active)
|
||||
pinctrl_pm_select_sleep_state(cpu_dai->dev);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* snd_soc_register_card - Register a card with the ASoC core
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue