PM / devfreq: rk3399_dmc: Use devm_pm_opp_of_add_table()
authorBrian Norris <briannorris@chromium.org>
Tue, 8 Mar 2022 19:09:00 +0000 (11:09 -0800)
committerChanwoo Choi <cw00.choi@samsung.com>
Wed, 13 Apr 2022 22:18:12 +0000 (07:18 +0900)
This simplifies error-cleanup and remove().

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

index fca9fcb..9615658 100644 (file)
@@ -401,7 +401,7 @@ no_pmu:
         * We add a devfreq driver to our parent since it has a device tree node
         * with operating points.
         */
-       if (dev_pm_opp_of_add_table(dev)) {
+       if (devm_pm_opp_of_add_table(dev)) {
                dev_err(dev, "Invalid operating-points in device tree.\n");
                ret = -EINVAL;
                goto err_edev;
@@ -415,7 +415,7 @@ no_pmu:
        opp = devfreq_recommended_opp(dev, &data->rate, 0);
        if (IS_ERR(opp)) {
                ret = PTR_ERR(opp);
-               goto err_free_opp;
+               goto err_edev;
        }
 
        data->rate = dev_pm_opp_get_freq(opp);
@@ -430,7 +430,7 @@ no_pmu:
                                           &data->ondemand_data);
        if (IS_ERR(data->devfreq)) {
                ret = PTR_ERR(data->devfreq);
-               goto err_free_opp;
+               goto err_edev;
        }
 
        devm_devfreq_register_opp_notifier(dev, data->devfreq);
@@ -440,8 +440,6 @@ no_pmu:
 
        return 0;
 
-err_free_opp:
-       dev_pm_opp_of_remove_table(&pdev->dev);
 err_edev:
        devfreq_event_disable_edev(data->edev);
 
@@ -454,12 +452,6 @@ static int rk3399_dmcfreq_remove(struct platform_device *pdev)
 
        devfreq_event_disable_edev(dmcfreq->edev);
 
-       /*
-        * Before remove the opp table we need to unregister the opp notifier.
-        */
-       devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq);
-       dev_pm_opp_of_remove_table(dmcfreq->dev);
-
        return 0;
 }