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

Configure Feed

Select the types of activity you want to include in your feed.

iio: adc: mt6577_auxadc: Use devm_clk_get_enabled() helper function

The devm_clk_get_enabled() helper:
- calls devm_clk_get()
- calls clk_prepare_enable() and registers what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.

This simplifies the code.

Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20230825105746.2999548-3-ruanjinjie@huawei.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Jinjie Ruan and committed by
Jonathan Cameron
a3e9625e 0bb80ecc

+3 -14
+3 -14
drivers/iio/adc/mt6577_auxadc.c
··· 270 270 return PTR_ERR(adc_dev->reg_base); 271 271 } 272 272 273 - adc_dev->adc_clk = devm_clk_get(&pdev->dev, "main"); 273 + adc_dev->adc_clk = devm_clk_get_enabled(&pdev->dev, "main"); 274 274 if (IS_ERR(adc_dev->adc_clk)) { 275 - dev_err(&pdev->dev, "failed to get auxadc clock\n"); 276 - return PTR_ERR(adc_dev->adc_clk); 277 - } 278 - 279 - ret = clk_prepare_enable(adc_dev->adc_clk); 280 - if (ret) { 281 275 dev_err(&pdev->dev, "failed to enable auxadc clock\n"); 282 - return ret; 276 + return PTR_ERR(adc_dev->adc_clk); 283 277 } 284 278 285 279 adc_clk_rate = clk_get_rate(adc_dev->adc_clk); 286 280 if (!adc_clk_rate) { 287 - ret = -EINVAL; 288 281 dev_err(&pdev->dev, "null clock rate\n"); 289 - goto err_disable_clk; 282 + return -EINVAL; 290 283 } 291 284 292 285 adc_dev->dev_comp = device_get_match_data(&pdev->dev); ··· 303 310 err_power_off: 304 311 mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC, 305 312 0, MT6577_AUXADC_PDN_EN); 306 - err_disable_clk: 307 - clk_disable_unprepare(adc_dev->adc_clk); 308 313 return ret; 309 314 } 310 315 ··· 315 324 316 325 mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC, 317 326 0, MT6577_AUXADC_PDN_EN); 318 - 319 - clk_disable_unprepare(adc_dev->adc_clk); 320 327 321 328 return 0; 322 329 }