thermal/drivers/mediatek: Change clk_prepare_enable to devm_clk_get_enabled in mtk_th...
authorKang Chen <void0red@hust.edu.cn>
Wed, 19 Apr 2023 02:07:49 +0000 (10:07 +0800)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Wed, 26 Apr 2023 08:38:34 +0000 (10:38 +0200)
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 <void0red@hust.edu.cn>
Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20230419020749.621257-2-void0red@hust.edu.cn
drivers/thermal/mediatek/auxadc_thermal.c

index 49bcd5304802d9f648237083f072f2a4863ac1ab..b59fe4307b0a076f35608187bf16a91b932538f3 100644 (file)
@@ -1206,14 +1206,6 @@ static int mtk_thermal_probe(struct platform_device *pdev)
 
        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 platform_device *pdev)
        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 platform_device *pdev)
 
        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,