aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/devfreq/governor_simpleondemand.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/devfreq/governor_simpleondemand.c')
-rw-r--r--drivers/devfreq/governor_simpleondemand.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/devfreq/governor_simpleondemand.c b/drivers/devfreq/governor_simpleondemand.c
index a2e3eae79011..3716a659122b 100644
--- a/drivers/devfreq/governor_simpleondemand.c
+++ b/drivers/devfreq/governor_simpleondemand.c
@@ -12,6 +12,7 @@
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/devfreq.h> 13#include <linux/devfreq.h>
14#include <linux/math64.h> 14#include <linux/math64.h>
15#include "governor.h"
15 16
16/* Default constants for DevFreq-Simple-Ondemand (DFSO) */ 17/* Default constants for DevFreq-Simple-Ondemand (DFSO) */
17#define DFSO_UPTHRESHOLD (90) 18#define DFSO_UPTHRESHOLD (90)
@@ -88,7 +89,30 @@ static int devfreq_simple_ondemand_func(struct devfreq *df,
88 return 0; 89 return 0;
89} 90}
90 91
92static int devfreq_simple_ondemand_handler(struct devfreq *devfreq,
93 unsigned int event, void *data)
94{
95 switch (event) {
96 case DEVFREQ_GOV_START:
97 devfreq_monitor_start(devfreq);
98 break;
99
100 case DEVFREQ_GOV_STOP:
101 devfreq_monitor_stop(devfreq);
102 break;
103
104 case DEVFREQ_GOV_INTERVAL:
105 devfreq_interval_update(devfreq, (unsigned int *)data);
106 break;
107 default:
108 break;
109 }
110
111 return 0;
112}
113
91const struct devfreq_governor devfreq_simple_ondemand = { 114const struct devfreq_governor devfreq_simple_ondemand = {
92 .name = "simple_ondemand", 115 .name = "simple_ondemand",
93 .get_target_freq = devfreq_simple_ondemand_func, 116 .get_target_freq = devfreq_simple_ondemand_func,
117 .event_handler = devfreq_simple_ondemand_handler,
94}; 118};