ASoC: cs4270: enable regulators at probe time
authorDaniel Mack <daniel@caiaq.de>
Mon, 8 Feb 2010 18:32:59 +0000 (02:32 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 10 Feb 2010 10:42:56 +0000 (10:42 +0000)
Enable the bulk regulators at probe time so we can safely disable them
again when going to suspend without confusing the reference counter.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/cs4270.c

index 593bfc7a6986a6446c37fef41fabcaa377454fe4..dfbeb2db61b3e25011c24276cab47a58425aa788 100644 (file)
@@ -629,8 +629,17 @@ static int cs4270_probe(struct platform_device *pdev)
        if (ret < 0)
                goto error_free_pcms;
 
+       ret = regulator_bulk_enable(ARRAY_SIZE(cs4270->supplies),
+                                   cs4270->supplies);
+       if (ret < 0)
+               goto error_free_regulators;
+
        return 0;
 
+error_free_regulators:
+       regulator_bulk_free(ARRAY_SIZE(cs4270->supplies),
+                           cs4270->supplies);
+
 error_free_pcms:
        snd_soc_free_pcms(socdev);
 
@@ -650,6 +659,7 @@ static int cs4270_remove(struct platform_device *pdev)
        struct cs4270_private *cs4270 = codec->private_data;
 
        snd_soc_free_pcms(socdev);
+       regulator_bulk_disable(ARRAY_SIZE(cs4270->supplies), cs4270->supplies);
        regulator_bulk_free(ARRAY_SIZE(cs4270->supplies), cs4270->supplies);
 
        return 0;