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:39 -0400 |
commit | 4ea454d2c1a38dd8c75a185019fea14ea34401b8 (patch) | |
tree | 707cda2213a3a889d2f838089da4175fcca9b146 /drivers/iio/adc | |
parent | 7abe9007ca671bf27799922711d8c023bac56a88 (diff) |
iio: adc: ad7476: 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/adc')
-rw-r--r-- | drivers/iio/adc/ad7476.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/drivers/iio/adc/ad7476.c b/drivers/iio/adc/ad7476.c index 2e98bef4af67..6d2b1d8d1a1f 100644 --- a/drivers/iio/adc/ad7476.c +++ b/drivers/iio/adc/ad7476.c | |||
@@ -213,24 +213,21 @@ static int ad7476_probe(struct spi_device *spi) | |||
213 | struct iio_dev *indio_dev; | 213 | struct iio_dev *indio_dev; |
214 | int ret; | 214 | int ret; |
215 | 215 | ||
216 | indio_dev = iio_device_alloc(sizeof(*st)); | 216 | indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); |
217 | if (indio_dev == NULL) { | 217 | if (!indio_dev) |
218 | ret = -ENOMEM; | 218 | return -ENOMEM; |
219 | goto error_ret; | 219 | |
220 | } | ||
221 | st = iio_priv(indio_dev); | 220 | st = iio_priv(indio_dev); |
222 | st->chip_info = | 221 | st->chip_info = |
223 | &ad7476_chip_info_tbl[spi_get_device_id(spi)->driver_data]; | 222 | &ad7476_chip_info_tbl[spi_get_device_id(spi)->driver_data]; |
224 | 223 | ||
225 | st->reg = regulator_get(&spi->dev, "vcc"); | 224 | st->reg = devm_regulator_get(&spi->dev, "vcc"); |
226 | if (IS_ERR(st->reg)) { | 225 | if (IS_ERR(st->reg)) |
227 | ret = PTR_ERR(st->reg); | 226 | return PTR_ERR(st->reg); |
228 | goto error_free_dev; | ||
229 | } | ||
230 | 227 | ||
231 | ret = regulator_enable(st->reg); | 228 | ret = regulator_enable(st->reg); |
232 | if (ret) | 229 | if (ret) |
233 | goto error_put_reg; | 230 | return ret; |
234 | 231 | ||
235 | spi_set_drvdata(spi, indio_dev); | 232 | spi_set_drvdata(spi, indio_dev); |
236 | 233 | ||
@@ -268,12 +265,7 @@ error_ring_unregister: | |||
268 | iio_triggered_buffer_cleanup(indio_dev); | 265 | iio_triggered_buffer_cleanup(indio_dev); |
269 | error_disable_reg: | 266 | error_disable_reg: |
270 | regulator_disable(st->reg); | 267 | regulator_disable(st->reg); |
271 | error_put_reg: | ||
272 | regulator_put(st->reg); | ||
273 | error_free_dev: | ||
274 | iio_device_free(indio_dev); | ||
275 | 268 | ||
276 | error_ret: | ||
277 | return ret; | 269 | return ret; |
278 | } | 270 | } |
279 | 271 | ||
@@ -285,8 +277,6 @@ static int ad7476_remove(struct spi_device *spi) | |||
285 | iio_device_unregister(indio_dev); | 277 | iio_device_unregister(indio_dev); |
286 | iio_triggered_buffer_cleanup(indio_dev); | 278 | iio_triggered_buffer_cleanup(indio_dev); |
287 | regulator_disable(st->reg); | 279 | regulator_disable(st->reg); |
288 | regulator_put(st->reg); | ||
289 | iio_device_free(indio_dev); | ||
290 | 280 | ||
291 | return 0; | 281 | return 0; |
292 | } | 282 | } |