Browse Source

ASoC: snd_soc_register_component() uses properly snd_soc_register_dai[s]()

snd_soc_register_dai()  uses fmt_single_name(), and
snd_soc_register_dais() uses fmt_multiple_name()
for dai->name which is used for name based matching.
This patch uses properly snd_soc_register_dai() it it was single driver,
and uses snd_register_dais() if it were multiple drivers.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Kuninori Morimoto 12 years ago
parent
commit
a1422b8cb4
1 changed files with 9 additions and 1 deletions
  1. 9 1
      sound/soc/soc-core.c

+ 9 - 1
sound/soc/soc-core.c

@@ -4169,7 +4169,15 @@ int snd_soc_register_component(struct device *dev,
 	cmpnt->driver	= cmpnt_drv;
 	cmpnt->num_dai	= num_dai;
 
-	ret = snd_soc_register_dais(dev, dai_drv, num_dai);
+	/*
+	 * snd_soc_register_dai()  uses fmt_single_name(), and
+	 * snd_soc_register_dais() uses fmt_multiple_name()
+	 * for dai->name which is used for name based matching
+	 */
+	if (1 == num_dai)
+		ret = snd_soc_register_dai(dev, dai_drv);
+	else
+		ret = snd_soc_register_dais(dev, dai_drv, num_dai);
 	if (ret < 0) {
 		dev_err(dev, "ASoC: Failed to regster DAIs: %d\n", ret);
 		goto error_component_name;