Commit 83116e66 authored by Nishanth Menon's avatar Nishanth Menon Committed by MyungJoo Ham

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: default avatarNishanth Menon <nm@ti.com>
Acked-by: default avatarMyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: default avatarMyungJoo Ham <myungjoo.ham@samsung.com>
parent 3aa173b8
...@@ -45,3 +45,21 @@ const struct devfreq_governor devfreq_performance = { ...@@ -45,3 +45,21 @@ const struct devfreq_governor devfreq_performance = {
.get_target_freq = devfreq_performance_func, .get_target_freq = devfreq_performance_func,
.event_handler = devfreq_performance_handler, .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 = { ...@@ -42,3 +42,21 @@ const struct devfreq_governor devfreq_powersave = {
.get_target_freq = devfreq_powersave_func, .get_target_freq = devfreq_powersave_func,
.event_handler = devfreq_powersave_handler, .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 = { ...@@ -125,3 +125,21 @@ const struct devfreq_governor devfreq_simple_ondemand = {
.get_target_freq = devfreq_simple_ondemand_func, .get_target_freq = devfreq_simple_ondemand_func,
.event_handler = devfreq_simple_ondemand_handler, .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 = { ...@@ -140,3 +140,21 @@ const struct devfreq_governor devfreq_userspace = {
.get_target_freq = devfreq_userspace_func, .get_target_freq = devfreq_userspace_func,
.event_handler = devfreq_userspace_handler, .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);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment