123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- From 227d1856924ec00a4f5bdf5afcf77bc7f3f04e86 Mon Sep 17 00:00:00 2001
- From: Kang Chen <[email protected]>
- Date: Wed, 19 Apr 2023 10:07:49 +0800
- Subject: [PATCH 19/42] thermal/drivers/mediatek: Change clk_prepare_enable to
- devm_clk_get_enabled in mtk_thermal_probe
- Use devm_clk_get_enabled to do automatic resource management.
- Meanwhile, remove error handling labels in the probe function and
- the whole remove function.
- Signed-off-by: Kang Chen <[email protected]>
- Reviewed-by: Dongliang Mu <[email protected]>
- Signed-off-by: Daniel Lezcano <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- ---
- drivers/thermal/mediatek/auxadc_thermal.c | 44 +++++------------------
- 1 file changed, 9 insertions(+), 35 deletions(-)
- --- a/drivers/thermal/mediatek/auxadc_thermal.c
- +++ b/drivers/thermal/mediatek/auxadc_thermal.c
- @@ -1206,14 +1206,6 @@ static int mtk_thermal_probe(struct plat
-
- mt->conf = of_device_get_match_data(&pdev->dev);
-
- - mt->clk_peri_therm = devm_clk_get(&pdev->dev, "therm");
- - if (IS_ERR(mt->clk_peri_therm))
- - return PTR_ERR(mt->clk_peri_therm);
- -
- - mt->clk_auxadc = devm_clk_get(&pdev->dev, "auxadc");
- - if (IS_ERR(mt->clk_auxadc))
- - return PTR_ERR(mt->clk_auxadc);
- -
- mt->thermal_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
- if (IS_ERR(mt->thermal_base))
- return PTR_ERR(mt->thermal_base);
- @@ -1272,16 +1264,18 @@ static int mtk_thermal_probe(struct plat
- if (ret)
- return ret;
-
- - ret = clk_prepare_enable(mt->clk_auxadc);
- - if (ret) {
- + mt->clk_auxadc = devm_clk_get_enabled(&pdev->dev, "auxadc");
- + if (IS_ERR(mt->clk_auxadc)) {
- + ret = PTR_ERR(mt->clk_auxadc);
- dev_err(&pdev->dev, "Can't enable auxadc clk: %d\n", ret);
- return ret;
- }
-
- - ret = clk_prepare_enable(mt->clk_peri_therm);
- - if (ret) {
- + mt->clk_peri_therm = devm_clk_get_enabled(&pdev->dev, "therm");
- + if (IS_ERR(mt->clk_peri_therm)) {
- + ret = PTR_ERR(mt->clk_peri_therm);
- dev_err(&pdev->dev, "Can't enable peri clk: %d\n", ret);
- - goto err_disable_clk_auxadc;
- + return ret;
- }
-
- mtk_thermal_turn_on_buffer(mt, apmixed_base);
- @@ -1305,38 +1299,18 @@ static int mtk_thermal_probe(struct plat
-
- tzdev = devm_thermal_of_zone_register(&pdev->dev, 0, mt,
- &mtk_thermal_ops);
- - if (IS_ERR(tzdev)) {
- - ret = PTR_ERR(tzdev);
- - goto err_disable_clk_peri_therm;
- - }
- + if (IS_ERR(tzdev))
- + return PTR_ERR(tzdev);
-
- ret = devm_thermal_add_hwmon_sysfs(&pdev->dev, tzdev);
- if (ret)
- dev_warn(&pdev->dev, "error in thermal_add_hwmon_sysfs");
-
- return 0;
- -
- -err_disable_clk_peri_therm:
- - clk_disable_unprepare(mt->clk_peri_therm);
- -err_disable_clk_auxadc:
- - clk_disable_unprepare(mt->clk_auxadc);
- -
- - return ret;
- -}
- -
- -static int mtk_thermal_remove(struct platform_device *pdev)
- -{
- - struct mtk_thermal *mt = platform_get_drvdata(pdev);
- -
- - clk_disable_unprepare(mt->clk_peri_therm);
- - clk_disable_unprepare(mt->clk_auxadc);
- -
- - return 0;
- }
-
- static struct platform_driver mtk_thermal_driver = {
- .probe = mtk_thermal_probe,
- - .remove = mtk_thermal_remove,
- .driver = {
- .name = "mtk-thermal",
- .of_match_table = mtk_thermal_of_match,
|