Message ID | 20240820094450.101976-1-link@vivo.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Daniel Lezcano |
Headers | show |
Series | thermal: sprd: Use devm_clk_get_enabled() helpers | expand |
On 2024/8/20 17:44, Huan Yang wrote: > The devm_clk_get_enabled() helpers: > - call devm_clk_get() > - call clk_prepare_enable() and register what is needed in order to > call clk_disable_unprepare() when needed, as a managed resource. > > This simplifies the code and avoids the calls to clk_disable_unprepare(). > > Signed-off-by: Huan Yang <link@vivo.com> Thanks. LGTM. Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> > --- > drivers/thermal/sprd_thermal.c | 14 +++----------- > 1 file changed, 3 insertions(+), 11 deletions(-) > > diff --git a/drivers/thermal/sprd_thermal.c b/drivers/thermal/sprd_thermal.c > index 874192546548..dfd1d529c410 100644 > --- a/drivers/thermal/sprd_thermal.c > +++ b/drivers/thermal/sprd_thermal.c > @@ -359,21 +359,17 @@ static int sprd_thm_probe(struct platform_device *pdev) > return -EINVAL; > } > > - thm->clk = devm_clk_get(&pdev->dev, "enable"); > + thm->clk = devm_clk_get_enabled(&pdev->dev, "enable"); > if (IS_ERR(thm->clk)) { > dev_err(&pdev->dev, "failed to get enable clock\n"); > return PTR_ERR(thm->clk); > } > > - ret = clk_prepare_enable(thm->clk); > - if (ret) > - return ret; > - > sprd_thm_para_config(thm); > > ret = sprd_thm_cal_read(np, "thm_sign_cal", &val); > if (ret) > - goto disable_clk; > + return ret; > > if (val > 0) > thm->ratio_sign = -1; > @@ -382,7 +378,7 @@ static int sprd_thm_probe(struct platform_device *pdev) > > ret = sprd_thm_cal_read(np, "thm_ratio_cal", &thm->ratio_off); > if (ret) > - goto disable_clk; > + return ret; > > for_each_child_of_node(np, sen_child) { > sen = devm_kzalloc(&pdev->dev, sizeof(*sen), GFP_KERNEL); > @@ -439,8 +435,6 @@ static int sprd_thm_probe(struct platform_device *pdev) > > of_put: > of_node_put(sen_child); > -disable_clk: > - clk_disable_unprepare(thm->clk); > return ret; > } > > @@ -526,8 +520,6 @@ static void sprd_thm_remove(struct platform_device *pdev) > devm_thermal_of_zone_unregister(&pdev->dev, > thm->sensor[i]->tzd); > } > - > - clk_disable_unprepare(thm->clk); > } > > static const struct of_device_id sprd_thermal_of_match[] = {
On 20/08/2024 11:44, Huan Yang wrote: > The devm_clk_get_enabled() helpers: > - call devm_clk_get() > - call clk_prepare_enable() and register what is needed in order to > call clk_disable_unprepare() when needed, as a managed resource. > > This simplifies the code and avoids the calls to clk_disable_unprepare(). > > Signed-off-by: Huan Yang <link@vivo.com> > --- Applied, thanks
diff --git a/drivers/thermal/sprd_thermal.c b/drivers/thermal/sprd_thermal.c index 874192546548..dfd1d529c410 100644 --- a/drivers/thermal/sprd_thermal.c +++ b/drivers/thermal/sprd_thermal.c @@ -359,21 +359,17 @@ static int sprd_thm_probe(struct platform_device *pdev) return -EINVAL; } - thm->clk = devm_clk_get(&pdev->dev, "enable"); + thm->clk = devm_clk_get_enabled(&pdev->dev, "enable"); if (IS_ERR(thm->clk)) { dev_err(&pdev->dev, "failed to get enable clock\n"); return PTR_ERR(thm->clk); } - ret = clk_prepare_enable(thm->clk); - if (ret) - return ret; - sprd_thm_para_config(thm); ret = sprd_thm_cal_read(np, "thm_sign_cal", &val); if (ret) - goto disable_clk; + return ret; if (val > 0) thm->ratio_sign = -1; @@ -382,7 +378,7 @@ static int sprd_thm_probe(struct platform_device *pdev) ret = sprd_thm_cal_read(np, "thm_ratio_cal", &thm->ratio_off); if (ret) - goto disable_clk; + return ret; for_each_child_of_node(np, sen_child) { sen = devm_kzalloc(&pdev->dev, sizeof(*sen), GFP_KERNEL); @@ -439,8 +435,6 @@ static int sprd_thm_probe(struct platform_device *pdev) of_put: of_node_put(sen_child); -disable_clk: - clk_disable_unprepare(thm->clk); return ret; } @@ -526,8 +520,6 @@ static void sprd_thm_remove(struct platform_device *pdev) devm_thermal_of_zone_unregister(&pdev->dev, thm->sensor[i]->tzd); } - - clk_disable_unprepare(thm->clk); } static const struct of_device_id sprd_thermal_of_match[] = {
The devm_clk_get_enabled() helpers: - call devm_clk_get() - call clk_prepare_enable() and register what is needed in order to call clk_disable_unprepare() when needed, as a managed resource. This simplifies the code and avoids the calls to clk_disable_unprepare(). Signed-off-by: Huan Yang <link@vivo.com> --- drivers/thermal/sprd_thermal.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-)