snd_soc_register_dais() considers dai counts inside. snd_soc_register_codec() does not need to care for it.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- sound/soc/soc-core.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index ceac893..5f44d22 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -4047,11 +4047,10 @@ int snd_soc_register_codec(struct device *dev, mutex_unlock(&client_mutex);
/* register any DAIs */ - if (num_dai) { - ret = snd_soc_register_dais(dev, dai_drv, num_dai); - if (ret < 0) - dev_err(codec->dev, "ASoC: Failed to regster" - " DAIs: %d\n", ret); + ret = snd_soc_register_dais(dev, dai_drv, num_dai); + if (ret < 0) { + dev_err(codec->dev, "ASoC: Failed to regster DAIs: %d\n", ret); + goto fail_codec_name; }
dev_dbg(codec->dev, "ASoC: Registered codec '%s'\n", codec->name); @@ -4073,7 +4072,6 @@ EXPORT_SYMBOL_GPL(snd_soc_register_codec); void snd_soc_unregister_codec(struct device *dev) { struct snd_soc_codec *codec; - int i;
list_for_each_entry(codec, &codec_list, list) { if (dev == codec->dev) @@ -4082,9 +4080,7 @@ void snd_soc_unregister_codec(struct device *dev) return;
found: - if (codec->num_dai) - for (i = 0; i < codec->num_dai; i++) - snd_soc_unregister_dai(dev); + snd_soc_unregister_dais(dev, codec->num_dai);
mutex_lock(&client_mutex); list_del(&codec->list);