aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/devfreq/governor_powersave.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/devfreq/governor_powersave.c')
-rw-r--r--drivers/devfreq/governor_powersave.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/devfreq/governor_powersave.c b/drivers/devfreq/governor_powersave.c
index fec0cdbd2477..2868d98ed3e2 100644
--- a/drivers/devfreq/governor_powersave.c
+++ b/drivers/devfreq/governor_powersave.c
@@ -23,14 +23,22 @@ static int devfreq_powersave_func(struct devfreq *df,
23 return 0; 23 return 0;
24} 24}
25 25
26static int powersave_init(struct devfreq *devfreq) 26static int devfreq_powersave_handler(struct devfreq *devfreq,
27 unsigned int event, void *data)
27{ 28{
28 return update_devfreq(devfreq); 29 int ret = 0;
30
31 if (event == DEVFREQ_GOV_START) {
32 mutex_lock(&devfreq->lock);
33 ret = update_devfreq(devfreq);
34 mutex_unlock(&devfreq->lock);
35 }
36
37 return ret;
29} 38}
30 39
31const struct devfreq_governor devfreq_powersave = { 40const struct devfreq_governor devfreq_powersave = {
32 .name = "powersave", 41 .name = "powersave",
33 .init = powersave_init,
34 .get_target_freq = devfreq_powersave_func, 42 .get_target_freq = devfreq_powersave_func,
35 .no_central_polling = true, 43 .event_handler = devfreq_powersave_handler,
36}; 44};