ASoC: soc-core: soc_probe_dai() code simplification
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 14 Feb 2018 02:58:03 +0000 (02:58 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 14 Feb 2018 11:57:26 +0000 (11:57 +0000)
Current soc_probe_dai() is using deep nested condition.
Thus, it is difficult to read/understand.
This patch simplification it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-core.c

index 60a542f..574048a 100644 (file)
@@ -1624,22 +1624,21 @@ static int soc_probe_link_components(struct snd_soc_card *card,
 
 static int soc_probe_dai(struct snd_soc_dai *dai, int order)
 {
-       int ret;
+       if (dai->probed ||
+           dai->driver->probe_order != order)
+               return 0;
 
-       if (!dai->probed && dai->driver->probe_order == order) {
-               if (dai->driver->probe) {
-                       ret = dai->driver->probe(dai);
-                       if (ret < 0) {
-                               dev_err(dai->dev,
-                                       "ASoC: failed to probe DAI %s: %d\n",
-                                       dai->name, ret);
-                               return ret;
-                       }
+       if (dai->driver->probe) {
+               int ret = dai->driver->probe(dai);
+               if (ret < 0) {
+                       dev_err(dai->dev, "ASoC: failed to probe DAI %s: %d\n",
+                               dai->name, ret);
+                       return ret;
                }
-
-               dai->probed = 1;
        }
 
+       dai->probed = 1;
+
        return 0;
 }