Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iio: adc: ad7793: 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>

authored by

Sachin Kamat and committed by
Jonathan Cameron
a3580132 eb8fe607

+6 -17
+6 -17
drivers/iio/adc/ad7793.c
··· 757 757 return -ENODEV; 758 758 } 759 759 760 - indio_dev = iio_device_alloc(sizeof(*st)); 760 + indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); 761 761 if (indio_dev == NULL) 762 762 return -ENOMEM; 763 763 ··· 766 766 ad_sd_init(&st->sd, indio_dev, spi, &ad7793_sigma_delta_info); 767 767 768 768 if (pdata->refsel != AD7793_REFSEL_INTERNAL) { 769 - st->reg = regulator_get(&spi->dev, "refin"); 770 - if (IS_ERR(st->reg)) { 771 - ret = PTR_ERR(st->reg); 772 - goto error_device_free; 773 - } 769 + st->reg = devm_regulator_get(&spi->dev, "refin"); 770 + if (IS_ERR(st->reg)) 771 + return PTR_ERR(st->reg); 774 772 775 773 ret = regulator_enable(st->reg); 776 774 if (ret) 777 - goto error_put_reg; 775 + return ret; 778 776 779 777 vref_mv = regulator_get_voltage(st->reg); 780 778 if (vref_mv < 0) { ··· 816 818 error_disable_reg: 817 819 if (pdata->refsel != AD7793_REFSEL_INTERNAL) 818 820 regulator_disable(st->reg); 819 - error_put_reg: 820 - if (pdata->refsel != AD7793_REFSEL_INTERNAL) 821 - regulator_put(st->reg); 822 - error_device_free: 823 - iio_device_free(indio_dev); 824 821 825 822 return ret; 826 823 } ··· 829 836 iio_device_unregister(indio_dev); 830 837 ad_sd_cleanup_buffer_and_trigger(indio_dev); 831 838 832 - if (pdata->refsel != AD7793_REFSEL_INTERNAL) { 839 + if (pdata->refsel != AD7793_REFSEL_INTERNAL) 833 840 regulator_disable(st->reg); 834 - regulator_put(st->reg); 835 - } 836 - 837 - iio_device_free(indio_dev); 838 841 839 842 return 0; 840 843 }