Skip to contentSkip to conversation

Staging: iio: Add error check on iio_register_device()

PATCH New Cristina Opriceana 1 participant 1 message Mar 29, 2015

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 drivers/staging/iio/meter/ade7754.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
drivers/staging/iio/meter/ade7754.c +9 -2
index 6335b58..f12b2e5 100644
@@ -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 */
Signature · 1 line
1.9.1