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

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>

authored by

Sachin Kamat and committed by
Jonathan Cameron
eb8fe607 4ea454d2

+5 -14
+5 -14
drivers/iio/adc/ad7791.c
··· 361 361 return -ENXIO; 362 362 } 363 363 364 - indio_dev = iio_device_alloc(sizeof(*st)); 364 + indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); 365 365 if (!indio_dev) 366 366 return -ENOMEM; 367 367 368 368 st = iio_priv(indio_dev); 369 369 370 - st->reg = regulator_get(&spi->dev, "refin"); 371 - if (IS_ERR(st->reg)) { 372 - ret = PTR_ERR(st->reg); 373 - goto err_iio_free; 374 - } 370 + st->reg = devm_regulator_get(&spi->dev, "refin"); 371 + if (IS_ERR(st->reg)) 372 + return PTR_ERR(st->reg); 375 373 376 374 ret = regulator_enable(st->reg); 377 375 if (ret) 378 - goto error_put_reg; 376 + return ret; 379 377 380 378 st->info = &ad7791_chip_infos[spi_get_device_id(spi)->driver_data]; 381 379 ad_sd_init(&st->sd, indio_dev, spi, &ad7791_sigma_delta_info); ··· 408 410 ad_sd_cleanup_buffer_and_trigger(indio_dev); 409 411 error_disable_reg: 410 412 regulator_disable(st->reg); 411 - error_put_reg: 412 - regulator_put(st->reg); 413 - err_iio_free: 414 - iio_device_free(indio_dev); 415 413 416 414 return ret; 417 415 } ··· 421 427 ad_sd_cleanup_buffer_and_trigger(indio_dev); 422 428 423 429 regulator_disable(st->reg); 424 - regulator_put(st->reg); 425 - 426 - iio_device_free(indio_dev); 427 430 428 431 return 0; 429 432 }