iio: adc: ad7791: 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>
This commit is contained in:
Sachin Kamat 2013-07-23 09:58:00 +01:00 коммит произвёл Jonathan Cameron
Родитель 4ea454d2c1
Коммит eb8fe60784
1 изменённых файлов: 5 добавлений и 14 удалений

Просмотреть файл

@ -361,21 +361,19 @@ static int ad7791_probe(struct spi_device *spi)
return -ENXIO; return -ENXIO;
} }
indio_dev = iio_device_alloc(sizeof(*st)); indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
if (!indio_dev) if (!indio_dev)
return -ENOMEM; return -ENOMEM;
st = iio_priv(indio_dev); st = iio_priv(indio_dev);
st->reg = regulator_get(&spi->dev, "refin"); st->reg = devm_regulator_get(&spi->dev, "refin");
if (IS_ERR(st->reg)) { if (IS_ERR(st->reg))
ret = PTR_ERR(st->reg); return PTR_ERR(st->reg);
goto err_iio_free;
}
ret = regulator_enable(st->reg); ret = regulator_enable(st->reg);
if (ret) if (ret)
goto error_put_reg; return ret;
st->info = &ad7791_chip_infos[spi_get_device_id(spi)->driver_data]; st->info = &ad7791_chip_infos[spi_get_device_id(spi)->driver_data];
ad_sd_init(&st->sd, indio_dev, spi, &ad7791_sigma_delta_info); ad_sd_init(&st->sd, indio_dev, spi, &ad7791_sigma_delta_info);
@ -410,10 +408,6 @@ error_remove_trigger:
ad_sd_cleanup_buffer_and_trigger(indio_dev); ad_sd_cleanup_buffer_and_trigger(indio_dev);
error_disable_reg: error_disable_reg:
regulator_disable(st->reg); regulator_disable(st->reg);
error_put_reg:
regulator_put(st->reg);
err_iio_free:
iio_device_free(indio_dev);
return ret; return ret;
} }
@ -427,9 +421,6 @@ static int ad7791_remove(struct spi_device *spi)
ad_sd_cleanup_buffer_and_trigger(indio_dev); ad_sd_cleanup_buffer_and_trigger(indio_dev);
regulator_disable(st->reg); regulator_disable(st->reg);
regulator_put(st->reg);
iio_device_free(indio_dev);
return 0; return 0;
} }