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

iio: adc: ingenic-adc: Benefit from devm_clk_get_prepared() to simplify

Make use of devm_clk_get_prepared() to replace some code that effectively
open codes this new function.

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20220808204740.307667-4-u.kleine-koenig@pengutronix.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Uwe Kleine-König and committed by
Jonathan Cameron
51f2f910 cdd07b3a

+2 -13
+2 -13
drivers/iio/adc/ingenic-adc.c
··· 734 734 return -EINVAL; 735 735 } 736 736 737 - static void ingenic_adc_clk_cleanup(void *data) 738 - { 739 - clk_unprepare(data); 740 - } 741 - 742 737 static const struct iio_info ingenic_adc_info = { 743 738 .write_raw = ingenic_adc_write_raw, 744 739 .read_raw = ingenic_adc_read_raw, ··· 853 858 if (IS_ERR(adc->base)) 854 859 return PTR_ERR(adc->base); 855 860 856 - adc->clk = devm_clk_get(dev, "adc"); 861 + adc->clk = devm_clk_get_prepared(dev, "adc"); 857 862 if (IS_ERR(adc->clk)) { 858 863 dev_err(dev, "Unable to get clock\n"); 859 864 return PTR_ERR(adc->clk); 860 865 } 861 866 862 - ret = clk_prepare_enable(adc->clk); 867 + ret = clk_enable(adc->clk); 863 868 if (ret) { 864 869 dev_err(dev, "Failed to enable clock\n"); 865 870 return ret; ··· 887 892 888 893 usleep_range(2000, 3000); /* Must wait at least 2ms. */ 889 894 clk_disable(adc->clk); 890 - 891 - ret = devm_add_action_or_reset(dev, ingenic_adc_clk_cleanup, adc->clk); 892 - if (ret) { 893 - dev_err(dev, "Unable to add action\n"); 894 - return ret; 895 - } 896 895 897 896 iio_dev->name = "jz-adc"; 898 897 iio_dev->modes = INDIO_DIRECT_MODE | INDIO_BUFFER_SOFTWARE;