ASoC: arizona: Propagate errors from arizona_spk_init
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Wed, 18 Jan 2017 15:27:05 +0000 (15:27 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 18 Jan 2017 16:26:56 +0000 (16:26 +0000)
arizona_spk_init uses snd_soc_dapm_new_control which since
commit 37e1df8c95e2 ("ASoC: dapm: handle probe deferrals") will
occasionally request a probe deferral. Which means we should propagate the
error out of our driver from it.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs47l24.c
sound/soc/codecs/wm5102.c
sound/soc/codecs/wm5110.c
sound/soc/codecs/wm8997.c
sound/soc/codecs/wm8998.c

index 73559ae..5bf6e59 100644 (file)
@@ -1121,7 +1121,10 @@ static int cs47l24_codec_probe(struct snd_soc_codec *codec)
 
        priv->core.arizona->dapm = dapm;
 
-       arizona_init_spk(codec);
+       ret = arizona_init_spk(codec);
+       if (ret < 0)
+               return ret;
+
        arizona_init_gpio(codec);
        arizona_init_mono(codec);
        arizona_init_notifiers(codec);
index e7ab37d..3fd42d3 100644 (file)
@@ -1944,7 +1944,10 @@ static int wm5102_codec_probe(struct snd_soc_codec *codec)
        if (ret)
                goto err_adsp2_codec_probe;
 
-       arizona_init_spk(codec);
+       ret = arizona_init_spk(codec);
+       if (ret < 0)
+               return ret;
+
        arizona_init_gpio(codec);
        arizona_init_notifiers(codec);
 
index 585fc70..9a9c2d0 100644 (file)
@@ -2279,7 +2279,10 @@ static int wm5110_codec_probe(struct snd_soc_codec *codec)
 
        priv->core.arizona->dapm = dapm;
 
-       arizona_init_spk(codec);
+       ret = arizona_init_spk(codec);
+       if (ret < 0)
+               return ret;
+
        arizona_init_gpio(codec);
        arizona_init_mono(codec);
        arizona_init_notifiers(codec);
index ee0c863..49401a8 100644 (file)
@@ -1062,8 +1062,12 @@ static int wm8997_codec_probe(struct snd_soc_codec *codec)
        struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
        struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
        struct wm8997_priv *priv = snd_soc_codec_get_drvdata(codec);
+       int ret;
+
+       ret = arizona_init_spk(codec);
+       if (ret < 0)
+               return ret;
 
-       arizona_init_spk(codec);
        arizona_init_notifiers(codec);
 
        snd_soc_component_disable_pin(component, "HAPTICS");
index 3694f59..44f4471 100644 (file)
@@ -1321,10 +1321,14 @@ static int wm8998_codec_probe(struct snd_soc_codec *codec)
        struct wm8998_priv *priv = snd_soc_codec_get_drvdata(codec);
        struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
        struct snd_soc_component *component = snd_soc_dapm_to_component(dapm);
+       int ret;
 
        priv->core.arizona->dapm = dapm;
 
-       arizona_init_spk(codec);
+       ret = arizona_init_spk(codec);
+       if (ret < 0)
+               return ret;
+
        arizona_init_gpio(codec);
        arizona_init_notifiers(codec);