diff options
Diffstat (limited to 'drivers/devfreq/governor_powersave.c')
| -rw-r--r-- | drivers/devfreq/governor_powersave.c | 16 |
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 | ||
| 26 | static int powersave_init(struct devfreq *devfreq) | 26 | static 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 | ||
| 31 | const struct devfreq_governor devfreq_powersave = { | 40 | const 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 | }; |
