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

Configure Feed

Select the types of activity you want to include in your feed.

PM / devfreq: rk3399_dmc: Use devm_pm_opp_of_add_table()

This simplifies error-cleanup and remove().

Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>

authored by

Brian Norris and committed by
Chanwoo Choi
cb178a95 2fccf9e6

+3 -11
+3 -11
drivers/devfreq/rk3399_dmc.c
··· 401 401 * We add a devfreq driver to our parent since it has a device tree node 402 402 * with operating points. 403 403 */ 404 - if (dev_pm_opp_of_add_table(dev)) { 404 + if (devm_pm_opp_of_add_table(dev)) { 405 405 dev_err(dev, "Invalid operating-points in device tree.\n"); 406 406 ret = -EINVAL; 407 407 goto err_edev; ··· 415 415 opp = devfreq_recommended_opp(dev, &data->rate, 0); 416 416 if (IS_ERR(opp)) { 417 417 ret = PTR_ERR(opp); 418 - goto err_free_opp; 418 + goto err_edev; 419 419 } 420 420 421 421 data->rate = dev_pm_opp_get_freq(opp); ··· 430 430 &data->ondemand_data); 431 431 if (IS_ERR(data->devfreq)) { 432 432 ret = PTR_ERR(data->devfreq); 433 - goto err_free_opp; 433 + goto err_edev; 434 434 } 435 435 436 436 devm_devfreq_register_opp_notifier(dev, data->devfreq); ··· 440 440 441 441 return 0; 442 442 443 - err_free_opp: 444 - dev_pm_opp_of_remove_table(&pdev->dev); 445 443 err_edev: 446 444 devfreq_event_disable_edev(data->edev); 447 445 ··· 451 453 struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev); 452 454 453 455 devfreq_event_disable_edev(dmcfreq->edev); 454 - 455 - /* 456 - * Before remove the opp table we need to unregister the opp notifier. 457 - */ 458 - devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq); 459 - dev_pm_opp_of_remove_table(dmcfreq->dev); 460 456 461 457 return 0; 462 458 }