diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2013-07-23 04:58:00 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2013-08-03 13:40:40 -0400 |
commit | e59576d4beaf232d1048bac391393c94b1b00745 (patch) | |
tree | f3bc99085e55a84812edeba96ef79b94e3c28860 /drivers/iio | |
parent | 82429e0d33ece550378852539827916cda0a6b69 (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.c | 20 |
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 = { | |||
275 | static int ad7923_probe(struct spi_device *spi) | 275 | static 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); |
336 | error_disable_reg: | 336 | error_disable_reg: |
337 | regulator_disable(st->reg); | 337 | regulator_disable(st->reg); |
338 | error_put_reg: | ||
339 | regulator_put(st->reg); | ||
340 | error_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 | } |