Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pwm: berlin: 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.

Link: https://lore.kernel.org/r/20230718175545.3946935-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>

authored by

Uwe Kleine-König and committed by
Thierry Reding
6dbf23f5 a6e5654e

+4 -21
+4 -21
drivers/pwm/pwm-berlin.c
··· 209 209 if (IS_ERR(bpc->base)) 210 210 return PTR_ERR(bpc->base); 211 211 212 - bpc->clk = devm_clk_get(&pdev->dev, NULL); 212 + bpc->clk = devm_clk_get_enabled(&pdev->dev, NULL); 213 213 if (IS_ERR(bpc->clk)) 214 214 return PTR_ERR(bpc->clk); 215 - 216 - ret = clk_prepare_enable(bpc->clk); 217 - if (ret) 218 - return ret; 219 215 220 216 bpc->chip.dev = &pdev->dev; 221 217 bpc->chip.ops = &berlin_pwm_ops; 222 218 bpc->chip.npwm = BERLIN_PWM_NUMPWMS; 223 219 224 - ret = pwmchip_add(&bpc->chip); 225 - if (ret < 0) { 226 - dev_err(&pdev->dev, "failed to add PWM chip: %d\n", ret); 227 - clk_disable_unprepare(bpc->clk); 228 - return ret; 229 - } 220 + ret = devm_pwmchip_add(&pdev->dev, &bpc->chip); 221 + if (ret < 0) 222 + return dev_err_probe(&pdev->dev, ret, "failed to add PWM chip\n"); 230 223 231 224 platform_set_drvdata(pdev, bpc); 232 225 233 226 return 0; 234 - } 235 - 236 - static void berlin_pwm_remove(struct platform_device *pdev) 237 - { 238 - struct berlin_pwm_chip *bpc = platform_get_drvdata(pdev); 239 - 240 - pwmchip_remove(&bpc->chip); 241 - 242 - clk_disable_unprepare(bpc->clk); 243 227 } 244 228 245 229 #ifdef CONFIG_PM_SLEEP ··· 274 290 275 291 static struct platform_driver berlin_pwm_driver = { 276 292 .probe = berlin_pwm_probe, 277 - .remove_new = berlin_pwm_remove, 278 293 .driver = { 279 294 .name = "berlin-pwm", 280 295 .of_match_table = berlin_pwm_match,