aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorJerome Brunet <jbrunet@baylibre.com>2019-06-27 14:13:49 +0200
committerMark Brown <broonie@kernel.org>2019-06-28 13:40:58 +0100
commitaf18b13fedae4637b439d1265038b30929ca5a4c (patch)
tree39f8cad695b3938ceeca02d5139e8c2db8e4cc8c /sound
parent8af6b2291e054773e2e58b2e5dbc06e981d14296 (diff)
downloadlinux-fpga-af18b13fedae4637b439d1265038b30929ca5a4c.tar.gz
ASoC: soc-core: defer card registration if codec component is missing
Like cpus and platforms, defer sound card initialization if the codec component is missing when initializing the dai_link Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/soc-core.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 05cd710273b6f4..b5f3c09311c37e 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1071,12 +1071,20 @@ static int soc_init_dai_link(struct snd_soc_card *card,
link->name);
return -EINVAL;
}
+
/* Codec DAI name must be specified */
if (!codec->dai_name) {
dev_err(card->dev, "ASoC: codec_dai_name not set for %s\n",
link->name);
return -EINVAL;
}
+
+ /*
+ * Defer card registration if codec component is not added to
+ * component list.
+ */
+ if (!soc_find_component(codec))
+ return -EPROBE_DEFER;
}
/*