summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Estevam <fabio.estevam@freescale.com>2014-10-02 22:25:24 -0300
committerJonathan Cameron <jic23@kernel.org>2014-10-04 12:30:26 +0100
commit9da64c25ffefa60b969c64176098ae616219f759 (patch)
treebcc82c4c2b4f495c7e4cda15d46ad52fa1687b6a
parent2e3d6675dc2f402d8b799b773324e60af3e2a325 (diff)
downloadlinux-stable-9da64c25ffefa60b969c64176098ae616219f759.tar.gz
linux-stable-9da64c25ffefa60b969c64176098ae616219f759.tar.bz2
linux-stable-9da64c25ffefa60b969c64176098ae616219f759.zip
iio: adc: vf610: Disable the regulator on error
If clk_prepare_enable() fails we should disable the regulator that was previously enabled. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r--drivers/iio/adc/vf610_adc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c
index ebb73f5d3c3a..767e9b975f00 100644
--- a/drivers/iio/adc/vf610_adc.c
+++ b/drivers/iio/adc/vf610_adc.c
@@ -704,11 +704,15 @@ static int vf610_adc_resume(struct device *dev)
ret = clk_prepare_enable(info->clk);
if (ret)
- return ret;
+ goto disable_reg;
vf610_adc_hw_init(info);
return 0;
+
+disable_reg:
+ regulator_disable(info->vref);
+ return ret;
}
#endif