aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iio
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2013-07-23 04:58:00 -0400
committerJonathan Cameron <jic23@kernel.org>2013-08-03 13:40:40 -0400
commite59576d4beaf232d1048bac391393c94b1b00745 (patch)
treef3bc99085e55a84812edeba96ef79b94e3c28860 /drivers/iio
parent82429e0d33ece550378852539827916cda0a6b69 (diff)
iio: adc: ad7923: Use devm_* APIs
devm_* APIs are device managed and make code simpler. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Acked-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r--drivers/iio/adc/ad7923.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/iio/adc/ad7923.c b/drivers/iio/adc/ad7923.c
index 97fa0d3dc4aa..4108dbb28c3d 100644
--- a/drivers/iio/adc/ad7923.c
+++ b/drivers/iio/adc/ad7923.c
@@ -275,10 +275,11 @@ static const struct iio_info ad7923_info = {
275static int ad7923_probe(struct spi_device *spi) 275static int ad7923_probe(struct spi_device *spi)
276{ 276{
277 struct ad7923_state *st; 277 struct ad7923_state *st;
278 struct iio_dev *indio_dev = iio_device_alloc(sizeof(*st)); 278 struct iio_dev *indio_dev;
279 const struct ad7923_chip_info *info; 279 const struct ad7923_chip_info *info;
280 int ret; 280 int ret;
281 281
282 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
282 if (indio_dev == NULL) 283 if (indio_dev == NULL)
283 return -ENOMEM; 284 return -ENOMEM;
284 285
@@ -311,14 +312,13 @@ static int ad7923_probe(struct spi_device *spi)
311 spi_message_add_tail(&st->scan_single_xfer[0], &st->scan_single_msg); 312 spi_message_add_tail(&st->scan_single_xfer[0], &st->scan_single_msg);
312 spi_message_add_tail(&st->scan_single_xfer[1], &st->scan_single_msg); 313 spi_message_add_tail(&st->scan_single_xfer[1], &st->scan_single_msg);
313 314
314 st->reg = regulator_get(&spi->dev, "refin"); 315 st->reg = devm_regulator_get(&spi->dev, "refin");
315 if (IS_ERR(st->reg)) { 316 if (IS_ERR(st->reg))
316 ret = PTR_ERR(st->reg); 317 return PTR_ERR(st->reg);
317 goto error_free; 318
318 }
319 ret = regulator_enable(st->reg); 319 ret = regulator_enable(st->reg);
320 if (ret) 320 if (ret)
321 goto error_put_reg; 321 return ret;
322 322
323 ret = iio_triggered_buffer_setup(indio_dev, NULL, 323 ret = iio_triggered_buffer_setup(indio_dev, NULL,
324 &ad7923_trigger_handler, NULL); 324 &ad7923_trigger_handler, NULL);
@@ -335,10 +335,6 @@ error_cleanup_ring:
335 iio_triggered_buffer_cleanup(indio_dev); 335 iio_triggered_buffer_cleanup(indio_dev);
336error_disable_reg: 336error_disable_reg:
337 regulator_disable(st->reg); 337 regulator_disable(st->reg);
338error_put_reg:
339 regulator_put(st->reg);
340error_free:
341 iio_device_free(indio_dev);
342 338
343 return ret; 339 return ret;
344} 340}
@@ -351,8 +347,6 @@ static int ad7923_remove(struct spi_device *spi)
351 iio_device_unregister(indio_dev); 347 iio_device_unregister(indio_dev);
352 iio_triggered_buffer_cleanup(indio_dev); 348 iio_triggered_buffer_cleanup(indio_dev);
353 regulator_disable(st->reg); 349 regulator_disable(st->reg);
354 regulator_put(st->reg);
355 iio_device_free(indio_dev);
356 350
357 return 0; 351 return 0;
358} 352}