ASoC: wm97xx: fix compilation corner case
authorRobert Jarzmik <robert.jarzmik@free.fr>
Sat, 14 Oct 2017 20:14:02 +0000 (22:14 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 18 Oct 2017 10:25:15 +0000 (11:25 +0100)
When the old AC97 is not used, CONFIG_SND_SOC_AC97_BUS is not
defined. As a consequence, in the error path, snd_soc_free_ac97_codec()
is not defined and triggers a compilation error.

Fix it for wm9705 and wm9712, as wm9713 is correctly written.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm9705.c
sound/soc/codecs/wm9712.c

index 68c204e3599f7b78b3ec648aa181490609e0825a..2c09f71fe433bd77bede92fe199eebdca0604425 100644 (file)
@@ -321,7 +321,6 @@ static int wm9705_soc_probe(struct snd_soc_codec *codec)
 {
        struct wm9705_priv *wm9705 = snd_soc_codec_get_drvdata(codec);
        struct regmap *regmap;
-       int ret;
 
        if (wm9705->mfd_pdata) {
                wm9705->ac97 = wm9705->mfd_pdata->ac97;
@@ -337,8 +336,8 @@ static int wm9705_soc_probe(struct snd_soc_codec *codec)
 
                regmap = regmap_init_ac97(wm9705->ac97, &wm9705_regmap_config);
                if (IS_ERR(regmap)) {
-                       ret = PTR_ERR(regmap);
-                       goto err_free_ac97_codec;
+                       snd_soc_free_ac97_codec(wm9705->ac97);
+                       return PTR_ERR(regmap);
                }
 #endif
        }
@@ -347,9 +346,6 @@ static int wm9705_soc_probe(struct snd_soc_codec *codec)
        snd_soc_codec_init_regmap(codec, regmap);
 
        return 0;
-err_free_ac97_codec:
-       snd_soc_free_ac97_codec(wm9705->ac97);
-       return ret;
 }
 
 static int wm9705_soc_remove(struct snd_soc_codec *codec)
index 9db5c7783de5f31dad36418c45b35d5e7eebe8f2..4f6d1a442bc448e35cf28e365e93071a9270bfc4 100644 (file)
@@ -656,8 +656,8 @@ static int wm9712_soc_probe(struct snd_soc_codec *codec)
 
                regmap = regmap_init_ac97(wm9712->ac97, &wm9712_regmap_config);
                if (IS_ERR(regmap)) {
-                       ret = PTR_ERR(regmap);
-                       goto err_free_ac97_codec;
+                       snd_soc_free_ac97_codec(wm9712->ac97);
+                       return PTR_ERR(regmap);
                }
 #endif
        }
@@ -668,9 +668,6 @@ static int wm9712_soc_probe(struct snd_soc_codec *codec)
        snd_soc_update_bits(codec, AC97_VIDEO, 0x3000, 0x3000);
 
        return 0;
-err_free_ac97_codec:
-       snd_soc_free_ac97_codec(wm9712->ac97);
-       return ret;
 }
 
 static int wm9712_soc_remove(struct snd_soc_codec *codec)