ASoC: Don't call DAI registration for CODECs with no DAI
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 18 Aug 2010 19:20:55 +0000 (20:20 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 20 Aug 2010 13:26:45 +0000 (14:26 +0100)
Otherwise we generate worrying (but benign) warnings for amps.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/soc-core.c

index 7093c17..65352c7 100644 (file)
@@ -3122,10 +3122,12 @@ int snd_soc_register_codec(struct device *dev,
                fixup_codec_formats(&dai_drv[i].capture);
        }
 
-       /* register DAIs */
-       ret = snd_soc_register_dais(dev, dai_drv, num_dai);
-       if (ret < 0)
+       /* register any DAIs */
+       if (num_dai) {
+               ret = snd_soc_register_dais(dev, dai_drv, num_dai);
+               if (ret < 0)
                        goto error;
+       }
 
        mutex_lock(&client_mutex);
        list_add(&codec->list, &codec_list);
@@ -3164,8 +3166,9 @@ void snd_soc_unregister_codec(struct device *dev)
        return;
 
 found:
-       for (i = 0; i < codec->num_dai; i++)
-               snd_soc_unregister_dai(dev);
+       if (codec->num_dai)
+               for (i = 0; i < codec->num_dai; i++)
+                       snd_soc_unregister_dai(dev);
 
        mutex_lock(&client_mutex);
        list_del(&codec->list);