diff options
author | Jerome Brunet <jbrunet@baylibre.com> | 2019-06-27 14:13:49 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-06-28 13:40:58 +0100 |
commit | af18b13fedae4637b439d1265038b30929ca5a4c (patch) | |
tree | 39f8cad695b3938ceeca02d5139e8c2db8e4cc8c /sound/soc/soc-core.c | |
parent | 8af6b2291e054773e2e58b2e5dbc06e981d14296 (diff) | |
download | linux-af18b13fedae4637b439d1265038b30929ca5a4c.tar.bz2 |
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/soc/soc-core.c')
-rw-r--r-- | sound/soc/soc-core.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 05cd710273b6..b5f3c09311c3 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; } /* |