summaryrefslogtreecommitdiffstats
path: root/drivers/staging/iio
diff options
context:
space:
mode:
authorCristina Opriceana <cristina.opriceana@gmail.com>2015-03-29 16:14:39 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-04-01 17:23:20 +0200
commitb72eb70209a0aac7651166d3f610ffb57b4c6e5f (patch)
tree31b9939054be143d208b8dc591316427730551a0 /drivers/staging/iio
parent675732707f29d6714bc756a75e70a6ec2b16a478 (diff)
downloadop-kernel-dev-b72eb70209a0aac7651166d3f610ffb57b4c6e5f.zip
op-kernel-dev-b72eb70209a0aac7651166d3f610ffb57b4c6e5f.tar.gz
Staging: iio: Add error check on iio_register_device()
This patch checks if an error occurred on probe and stops the device in order to avoid wasting power. Signed-off-by: Cristina Opriceana <cristina.opriceana@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/iio')
-rw-r--r--drivers/staging/iio/meter/ade7754.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/staging/iio/meter/ade7754.c b/drivers/staging/iio/meter/ade7754.c
index 6335b58..f12b2e5 100644
--- a/drivers/staging/iio/meter/ade7754.c
+++ b/drivers/staging/iio/meter/ade7754.c
@@ -550,8 +550,15 @@ static int ade7754_probe(struct spi_device *spi)
/* Get the device into a sane initial state */
ret = ade7754_initial_setup(indio_dev);
if (ret)
- return ret;
- return iio_device_register(indio_dev);
+ goto powerdown_on_error;
+ ret = iio_device_register(indio_dev);
+ if (ret)
+ goto powerdown_on_error;
+ return ret;
+
+powerdown_on_error:
+ ade7754_stop_device(&indio_dev->dev);
+ return ret;
}
/* fixme, confirm ordering in this function */
OpenPOWER on IntegriCloud