diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2013-08-19 07:38:00 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2013-08-19 15:31:04 -0400 |
commit | edf3fd4141f17fa81497e7417aba7a45d1a36af9 (patch) | |
tree | 3d60b9099b299159cf56906547d2203d9d9ae2d6 /drivers | |
parent | 75238230cce22b99e648e96bbc043725832c6ad5 (diff) |
iio: dac: ad5686: Use devm_* APIs
devm_* APIs are device managed and make code simpler.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/iio/dac/ad5686.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/iio/dac/ad5686.c b/drivers/iio/dac/ad5686.c index 06439b1af9b6..57825ead7db2 100644 --- a/drivers/iio/dac/ad5686.c +++ b/drivers/iio/dac/ad5686.c | |||
@@ -314,18 +314,18 @@ static int ad5686_probe(struct spi_device *spi) | |||
314 | struct iio_dev *indio_dev; | 314 | struct iio_dev *indio_dev; |
315 | int ret, regdone = 0, voltage_uv = 0; | 315 | int ret, regdone = 0, voltage_uv = 0; |
316 | 316 | ||
317 | indio_dev = iio_device_alloc(sizeof(*st)); | 317 | indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); |
318 | if (indio_dev == NULL) | 318 | if (indio_dev == NULL) |
319 | return -ENOMEM; | 319 | return -ENOMEM; |
320 | 320 | ||
321 | st = iio_priv(indio_dev); | 321 | st = iio_priv(indio_dev); |
322 | spi_set_drvdata(spi, indio_dev); | 322 | spi_set_drvdata(spi, indio_dev); |
323 | 323 | ||
324 | st->reg = regulator_get(&spi->dev, "vcc"); | 324 | st->reg = devm_regulator_get(&spi->dev, "vcc"); |
325 | if (!IS_ERR(st->reg)) { | 325 | if (!IS_ERR(st->reg)) { |
326 | ret = regulator_enable(st->reg); | 326 | ret = regulator_enable(st->reg); |
327 | if (ret) | 327 | if (ret) |
328 | goto error_put_reg; | 328 | return ret; |
329 | 329 | ||
330 | ret = regulator_get_voltage(st->reg); | 330 | ret = regulator_get_voltage(st->reg); |
331 | if (ret < 0) | 331 | if (ret < 0) |
@@ -369,12 +369,6 @@ static int ad5686_probe(struct spi_device *spi) | |||
369 | error_disable_reg: | 369 | error_disable_reg: |
370 | if (!IS_ERR(st->reg)) | 370 | if (!IS_ERR(st->reg)) |
371 | regulator_disable(st->reg); | 371 | regulator_disable(st->reg); |
372 | error_put_reg: | ||
373 | if (!IS_ERR(st->reg)) | ||
374 | regulator_put(st->reg); | ||
375 | |||
376 | iio_device_free(indio_dev); | ||
377 | |||
378 | return ret; | 372 | return ret; |
379 | } | 373 | } |
380 | 374 | ||
@@ -384,11 +378,8 @@ static int ad5686_remove(struct spi_device *spi) | |||
384 | struct ad5686_state *st = iio_priv(indio_dev); | 378 | struct ad5686_state *st = iio_priv(indio_dev); |
385 | 379 | ||
386 | iio_device_unregister(indio_dev); | 380 | iio_device_unregister(indio_dev); |
387 | if (!IS_ERR(st->reg)) { | 381 | if (!IS_ERR(st->reg)) |
388 | regulator_disable(st->reg); | 382 | regulator_disable(st->reg); |
389 | regulator_put(st->reg); | ||
390 | } | ||
391 | iio_device_free(indio_dev); | ||
392 | 383 | ||
393 | return 0; | 384 | return 0; |
394 | } | 385 | } |