ASoC: cs4270: Check that we can enable regulators on resume
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 19 Mar 2012 16:15:43 +0000 (16:15 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 1 Apr 2012 10:28:28 +0000 (11:28 +0100)
It's possible that the regulator enable will fail and if it does we may
as well just give up with trying to bring the rest of the device up and
report the original error.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Timur Tabi <timur@freescale.com>
sound/soc/codecs/cs4270.c

index 1d672f528662cb162fc99a36b6946026a2dfdb09..df8fe387a66f27eebd2f0860333029994bde23d9 100644 (file)
@@ -600,10 +600,12 @@ static int cs4270_soc_suspend(struct snd_soc_codec *codec)
 static int cs4270_soc_resume(struct snd_soc_codec *codec)
 {
        struct cs4270_private *cs4270 = snd_soc_codec_get_drvdata(codec);
-       int reg;
+       int reg, ret;
 
-       regulator_bulk_enable(ARRAY_SIZE(cs4270->supplies),
-                             cs4270->supplies);
+       ret = regulator_bulk_enable(ARRAY_SIZE(cs4270->supplies),
+                                   cs4270->supplies);
+       if (ret != 0)
+               return ret;
 
        /* In case the device was put to hard reset during sleep, we need to
         * wait 500ns here before any I2C communication. */