PM / devfreq: register governors with devfreq framework
With the new registration functions, governors can be now registered with devfreq framework. NOTE: generates 'discards qualifiers from pointer target type' build warnings, which the next patche in this series fixes Cc: Rajagopal Venkat <rajagopal.venkat@linaro.org> Cc: MyungJoo Ham <myungjoo.ham@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Kevin Hilman <khilman@ti.com> Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Nishanth Menon <nm@ti.com> Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
This commit is contained in:
parent
3aa173b8db
commit
83116e66a2
4 changed files with 72 additions and 0 deletions
|
@ -45,3 +45,21 @@ const struct devfreq_governor devfreq_performance = {
|
|||
.get_target_freq = devfreq_performance_func,
|
||||
.event_handler = devfreq_performance_handler,
|
||||
};
|
||||
|
||||
static int __init devfreq_performance_init(void)
|
||||
{
|
||||
return devfreq_add_governor(&devfreq_performance);
|
||||
}
|
||||
subsys_initcall(devfreq_performance_init);
|
||||
|
||||
static void __exit devfreq_performance_exit(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = devfreq_remove_governor(&devfreq_performance);
|
||||
if (ret)
|
||||
pr_err("%s: failed remove governor %d\n", __func__, ret);
|
||||
|
||||
return;
|
||||
}
|
||||
module_exit(devfreq_performance_exit);
|
||||
|
|
|
@ -42,3 +42,21 @@ const struct devfreq_governor devfreq_powersave = {
|
|||
.get_target_freq = devfreq_powersave_func,
|
||||
.event_handler = devfreq_powersave_handler,
|
||||
};
|
||||
|
||||
static int __init devfreq_powersave_init(void)
|
||||
{
|
||||
return devfreq_add_governor(&devfreq_powersave);
|
||||
}
|
||||
subsys_initcall(devfreq_powersave_init);
|
||||
|
||||
static void __exit devfreq_powersave_exit(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = devfreq_remove_governor(&devfreq_powersave);
|
||||
if (ret)
|
||||
pr_err("%s: failed remove governor %d\n", __func__, ret);
|
||||
|
||||
return;
|
||||
}
|
||||
module_exit(devfreq_powersave_exit);
|
||||
|
|
|
@ -125,3 +125,21 @@ const struct devfreq_governor devfreq_simple_ondemand = {
|
|||
.get_target_freq = devfreq_simple_ondemand_func,
|
||||
.event_handler = devfreq_simple_ondemand_handler,
|
||||
};
|
||||
|
||||
static int __init devfreq_simple_ondemand_init(void)
|
||||
{
|
||||
return devfreq_add_governor(&devfreq_simple_ondemand);
|
||||
}
|
||||
subsys_initcall(devfreq_simple_ondemand_init);
|
||||
|
||||
static void __exit devfreq_simple_ondemand_exit(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = devfreq_remove_governor(&devfreq_simple_ondemand);
|
||||
if (ret)
|
||||
pr_err("%s: failed remove governor %d\n", __func__, ret);
|
||||
|
||||
return;
|
||||
}
|
||||
module_exit(devfreq_simple_ondemand_exit);
|
||||
|
|
|
@ -140,3 +140,21 @@ const struct devfreq_governor devfreq_userspace = {
|
|||
.get_target_freq = devfreq_userspace_func,
|
||||
.event_handler = devfreq_userspace_handler,
|
||||
};
|
||||
|
||||
static int __init devfreq_userspace_init(void)
|
||||
{
|
||||
return devfreq_add_governor(&devfreq_userspace);
|
||||
}
|
||||
subsys_initcall(devfreq_userspace_init);
|
||||
|
||||
static void __exit devfreq_userspace_exit(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = devfreq_remove_governor(&devfreq_userspace);
|
||||
if (ret)
|
||||
pr_err("%s: failed remove governor %d\n", __func__, ret);
|
||||
|
||||
return;
|
||||
}
|
||||
module_exit(devfreq_userspace_exit);
|
||||
|
|
Loading…
Reference in a new issue