Skip to content

Commit

Permalink
thermal/drivers/rockchip: Simplify clock logic
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Sebastian Reichel <[email protected]>
Signed-off-by: Daniel Lezcano <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
  • Loading branch information
sre authored and dlezcano committed Apr 7, 2023
1 parent f1d2427 commit 2f6916f
Showing 1 changed file with 5 additions and 28 deletions.
33 changes: 5 additions & 28 deletions drivers/thermal/rockchip_thermal.c
Original file line number Diff line number Diff line change
Expand Up @@ -1380,41 +1380,28 @@ 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",
error);
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,
Expand All @@ -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;
}
}

Expand All @@ -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);
Expand All @@ -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)
Expand All @@ -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;
}

Expand Down

0 comments on commit 2f6916f

Please sign in to comment.