[alsa-devel] [PATCH v2 08/13] ASoC: Bind new DAI links after probing components
mengdong.lin at linux.intel.com
mengdong.lin at linux.intel.com
Thu Nov 5 10:59:32 CET 2015
From: Mengdong Lin <mengdong.lin at linux.intel.com>
Probing components can bring new DAI or DAI links based on the topology
info. This patch finds the unbound DAI links and bind them.
Signed-off-by: Mengdong Lin <mengdong.lin at linux.intel.com>
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 86c3219..cb49a31 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1747,6 +1747,7 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
{
struct snd_soc_codec *codec;
struct snd_soc_pcm_runtime *rtd;
+ struct snd_soc_dai_link *dai_link;
int ret, i, order;
mutex_lock(&client_mutex);
@@ -1834,6 +1835,21 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
}
}
+ /* Find new DAI links added during probing components and bind them.
+ * Components with topology may bring new DAIs and DAI links.
+ */
+ list_for_each_entry(dai_link, &card->dai_link_list, list) {
+ if (soc_is_dai_link_bound(card, dai_link))
+ continue;
+
+ ret = soc_init_dai_link(card, dai_link);
+ if (ret)
+ goto probe_dai_err;
+ ret = soc_bind_dai_link(card, dai_link);
+ if (ret)
+ goto probe_dai_err;
+ }
+
/* probe all DAI links on this card */
for (order = SND_SOC_COMP_ORDER_FIRST; order <= SND_SOC_COMP_ORDER_LAST;
order++) {
--
1.9.1
More information about the Alsa-devel
mailing list