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

PM / devfreq: exynos4: Use devm_devfreq_* function using device resource management

This patch uses devm_devfreq_add_device()/devm_devfreq_register_opp_notifier()
to control automatically the resource of devfreq.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>

authored by

Chanwoo Choi and committed by
MyungJoo Ham
c1b13d4e d5b040d0

+4 -15
+4 -15
drivers/devfreq/exynos/exynos4_bus.c
··· 979 979 980 980 platform_set_drvdata(pdev, data); 981 981 982 - data->devfreq = devfreq_add_device(dev, &exynos4_devfreq_profile, 982 + data->devfreq = devm_devfreq_add_device(dev, &exynos4_devfreq_profile, 983 983 "simple_ondemand", NULL); 984 984 if (IS_ERR(data->devfreq)) 985 985 return PTR_ERR(data->devfreq); ··· 991 991 busfreq_mon_reset(ppmu_data); 992 992 993 993 /* Register opp_notifier for Exynos4 busfreq */ 994 - err = devfreq_register_opp_notifier(dev, data->devfreq); 994 + err = devm_devfreq_register_opp_notifier(dev, data->devfreq); 995 995 if (err < 0) { 996 996 dev_err(dev, "Failed to register opp notifier\n"); 997 - goto err_notifier_opp; 997 + return err; 998 998 } 999 999 1000 1000 /* Register pm_notifier for Exynos4 busfreq */ 1001 1001 err = register_pm_notifier(&data->pm_notifier); 1002 1002 if (err) { 1003 1003 dev_err(dev, "Failed to setup pm notifier\n"); 1004 - goto err_notifier_pm; 1004 + return err; 1005 1005 } 1006 1006 1007 1007 return 0; 1008 - 1009 - err_notifier_pm: 1010 - devfreq_unregister_opp_notifier(dev, data->devfreq); 1011 - err_notifier_opp: 1012 - devfreq_remove_device(data->devfreq); 1013 - 1014 - return err; 1015 1008 } 1016 1009 1017 1010 static int exynos4_busfreq_remove(struct platform_device *pdev) ··· 1013 1020 1014 1021 /* Unregister all of notifier chain */ 1015 1022 unregister_pm_notifier(&data->pm_notifier); 1016 - devfreq_unregister_opp_notifier(data->dev, data->devfreq); 1017 - 1018 - /* Remove devfreq instance */ 1019 - devfreq_remove_device(data->devfreq); 1020 1023 1021 1024 return 0; 1022 1025 }