Skip to content

Commit 5af615f

Browse files
Uwe Kleine-Königthierryreding
authored andcommitted
pwm: brcmstb: Simplify using devm functions
With devm_clk_get_enabled() the call to clk_disable_unprepare() can be dropped from the error path and the remove callback. With devm_pwmchip_add() pwmchip_remove() can be dropped. Then the remove callback is empty and can go away, too. Also use dev_err_probe() for simplified (and improved) error reporting. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Uwe Kleine-König <[email protected]> Signed-off-by: Thierry Reding <[email protected]>
1 parent 2ce7b7f commit 5af615f

File tree

1 file changed

+9
-33
lines changed

1 file changed

+9
-33
lines changed

drivers/pwm/pwm-brcmstb.c

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -237,17 +237,10 @@ static int brcmstb_pwm_probe(struct platform_device *pdev)
237237
if (!p)
238238
return -ENOMEM;
239239

240-
p->clk = devm_clk_get(&pdev->dev, NULL);
241-
if (IS_ERR(p->clk)) {
242-
dev_err(&pdev->dev, "failed to obtain clock\n");
243-
return PTR_ERR(p->clk);
244-
}
245-
246-
ret = clk_prepare_enable(p->clk);
247-
if (ret < 0) {
248-
dev_err(&pdev->dev, "failed to enable clock: %d\n", ret);
249-
return ret;
250-
}
240+
p->clk = devm_clk_get_enabled(&pdev->dev, NULL);
241+
if (IS_ERR(p->clk))
242+
return dev_err_probe(&pdev->dev, PTR_ERR(p->clk),
243+
"failed to obtain clock\n");
251244

252245
platform_set_drvdata(pdev, p);
253246

@@ -256,30 +249,14 @@ static int brcmstb_pwm_probe(struct platform_device *pdev)
256249
p->chip.npwm = 2;
257250

258251
p->base = devm_platform_ioremap_resource(pdev, 0);
259-
if (IS_ERR(p->base)) {
260-
ret = PTR_ERR(p->base);
261-
goto out_clk;
262-
}
252+
if (IS_ERR(p->base))
253+
return PTR_ERR(p->base);
263254

264-
ret = pwmchip_add(&p->chip);
265-
if (ret) {
266-
dev_err(&pdev->dev, "failed to add PWM chip: %d\n", ret);
267-
goto out_clk;
268-
}
255+
ret = devm_pwmchip_add(&pdev->dev, &p->chip);
256+
if (ret)
257+
return dev_err_probe(&pdev->dev, ret, "failed to add PWM chip\n");
269258

270259
return 0;
271-
272-
out_clk:
273-
clk_disable_unprepare(p->clk);
274-
return ret;
275-
}
276-
277-
static void brcmstb_pwm_remove(struct platform_device *pdev)
278-
{
279-
struct brcmstb_pwm *p = platform_get_drvdata(pdev);
280-
281-
pwmchip_remove(&p->chip);
282-
clk_disable_unprepare(p->clk);
283260
}
284261

285262
#ifdef CONFIG_PM_SLEEP
@@ -307,7 +284,6 @@ static SIMPLE_DEV_PM_OPS(brcmstb_pwm_pm_ops, brcmstb_pwm_suspend,
307284

308285
static struct platform_driver brcmstb_pwm_driver = {
309286
.probe = brcmstb_pwm_probe,
310-
.remove_new = brcmstb_pwm_remove,
311287
.driver = {
312288
.name = "pwm-brcmstb",
313289
.of_match_table = brcmstb_pwm_of_match,

0 commit comments

Comments
 (0)