aboutsummaryrefslogtreecommitdiff
path: root/drivers/thermal
diff options
context:
space:
mode:
authorSebastian Reichel2023-03-08 12:22:48 +0100
committerDaniel Lezcano2023-04-07 10:31:32 +0200
commit2f6916f12c0e46ecd4c2b793a014132140730560 (patch)
tree2d0e8b262d1935049f8e1e4f6487caf837d8a1b6 /drivers/thermal
parentf1d2427cb458fd8ecb709c27f43088d6e250a7aa (diff)
thermal/drivers/rockchip: Simplify clock logic
By using devm_clk_get_enabled() the clock acquisition and enabling can be done in one step with automatic error handling. Reviewed-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20230308112253.15659-3-sebastian.reichel@collabora.com
Diffstat (limited to 'drivers/thermal')
-rw-r--r--drivers/thermal/rockchip_thermal.c33
1 files changed, 5 insertions, 28 deletions
diff --git a/drivers/thermal/rockchip_thermal.c b/drivers/thermal/rockchip_thermal.c
index 68e8541e8aa6..0a7e47e62ab3 100644
--- a/drivers/thermal/rockchip_thermal.c
+++ b/drivers/thermal/rockchip_thermal.c
@@ -1380,14 +1380,14 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
return error;
}
- thermal->clk = devm_clk_get(&pdev->dev, "tsadc");
+ thermal->clk = devm_clk_get_enabled(&pdev->dev, "tsadc");
if (IS_ERR(thermal->clk)) {
error = PTR_ERR(thermal->clk);
dev_err(&pdev->dev, "failed to get tsadc clock: %d\n", error);
return error;
}
- thermal->pclk = devm_clk_get(&pdev->dev, "apb_pclk");
+ thermal->pclk = devm_clk_get_enabled(&pdev->dev, "apb_pclk");
if (IS_ERR(thermal->pclk)) {
error = PTR_ERR(thermal->pclk);
dev_err(&pdev->dev, "failed to get apb_pclk clock: %d\n",
@@ -1395,26 +1395,13 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
return error;
}
- error = clk_prepare_enable(thermal->clk);
- if (error) {
- dev_err(&pdev->dev, "failed to enable converter clock: %d\n",
- error);
- return error;
- }
-
- error = clk_prepare_enable(thermal->pclk);
- if (error) {
- dev_err(&pdev->dev, "failed to enable pclk: %d\n", error);
- goto err_disable_clk;
- }
-
rockchip_thermal_reset_controller(thermal->reset);
error = rockchip_configure_from_dt(&pdev->dev, np, thermal);
if (error) {
dev_err(&pdev->dev, "failed to parse device tree data: %d\n",
error);
- goto err_disable_pclk;
+ return error;
}
thermal->chip->initialize(thermal->grf, thermal->regs,
@@ -1428,7 +1415,7 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
dev_err(&pdev->dev,
"failed to register sensor[%d] : error = %d\n",
i, error);
- goto err_disable_pclk;
+ return error;
}
}
@@ -1439,7 +1426,7 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
if (error) {
dev_err(&pdev->dev,
"failed to request tsadc irq: %d\n", error);
- goto err_disable_pclk;
+ return error;
}
thermal->chip->control(thermal->regs, true);
@@ -1456,13 +1443,6 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, thermal);
return 0;
-
-err_disable_pclk:
- clk_disable_unprepare(thermal->pclk);
-err_disable_clk:
- clk_disable_unprepare(thermal->clk);
-
- return error;
}
static int rockchip_thermal_remove(struct platform_device *pdev)
@@ -1479,9 +1459,6 @@ static int rockchip_thermal_remove(struct platform_device *pdev)
thermal->chip->control(thermal->regs, false);
- clk_disable_unprepare(thermal->pclk);
- clk_disable_unprepare(thermal->clk);
-
return 0;
}