aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCristina Opriceana <[email protected]>2015-03-29 16:14:39 +0300
committerGreg Kroah-Hartman <[email protected]>2015-04-01 17:23:20 +0200
commitb72eb70209a0aac7651166d3f610ffb57b4c6e5f (patch)
tree31b9939054be143d208b8dc591316427730551a0
parent675732707f29d6714bc756a75e70a6ec2b16a478 (diff)
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 <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
-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 6335b5815acd..f12b2e50329b 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 */