···401401 * We add a devfreq driver to our parent since it has a device tree node402402 * with operating points.403403 */404404- if (dev_pm_opp_of_add_table(dev)) {404404+ if (devm_pm_opp_of_add_table(dev)) {405405 dev_err(dev, "Invalid operating-points in device tree.\n");406406 ret = -EINVAL;407407 goto err_edev;···415415 opp = devfreq_recommended_opp(dev, &data->rate, 0);416416 if (IS_ERR(opp)) {417417 ret = PTR_ERR(opp);418418- goto err_free_opp;418418+ goto err_edev;419419 }420420421421 data->rate = dev_pm_opp_get_freq(opp);···430430 &data->ondemand_data);431431 if (IS_ERR(data->devfreq)) {432432 ret = PTR_ERR(data->devfreq);433433- goto err_free_opp;433433+ goto err_edev;434434 }435435436436 devm_devfreq_register_opp_notifier(dev, data->devfreq);···440440441441 return 0;442442443443-err_free_opp:444444- dev_pm_opp_of_remove_table(&pdev->dev);445443err_edev:446444 devfreq_event_disable_edev(data->edev);447445···451453 struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(&pdev->dev);452454453455 devfreq_event_disable_edev(dmcfreq->edev);454454-455455- /*456456- * Before remove the opp table we need to unregister the opp notifier.457457- */458458- devm_devfreq_unregister_opp_notifier(dmcfreq->dev, dmcfreq->devfreq);459459- dev_pm_opp_of_remove_table(dmcfreq->dev);460456461457 return 0;462458}