PM: devfreq: init performance/powersave governor
Xiaoguang Chen [Sun, 29 Apr 2012 20:51:31 +0000 (22:51 +0200)]
Performance and powersave governor's get_target_freq
is not called if driver chooses one of these two governors.
Add init function in governor profile to call update_devfreq
which will call get_target_freq subsequently.

Signed-off-by: Xiaoguang Chen <chenxg@marvell.com>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

drivers/devfreq/governor_performance.c
drivers/devfreq/governor_powersave.c

index 574a06b..af75ddd 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 #include <linux/devfreq.h>
+#include "governor.h"
 
 static int devfreq_performance_func(struct devfreq *df,
                                    unsigned long *freq)
@@ -25,8 +26,14 @@ static int devfreq_performance_func(struct devfreq *df,
        return 0;
 }
 
+static int performance_init(struct devfreq *devfreq)
+{
+       return update_devfreq(devfreq);
+}
+
 const struct devfreq_governor devfreq_performance = {
        .name = "performance",
+       .init = performance_init,
        .get_target_freq = devfreq_performance_func,
        .no_central_polling = true,
 };
index d742d4a..fec0cdb 100644 (file)
@@ -10,6 +10,7 @@
  */
 
 #include <linux/devfreq.h>
+#include "governor.h"
 
 static int devfreq_powersave_func(struct devfreq *df,
                                  unsigned long *freq)
@@ -22,8 +23,14 @@ static int devfreq_powersave_func(struct devfreq *df,
        return 0;
 }
 
+static int powersave_init(struct devfreq *devfreq)
+{
+       return update_devfreq(devfreq);
+}
+
 const struct devfreq_governor devfreq_powersave = {
        .name = "powersave",
+       .init = powersave_init,
        .get_target_freq = devfreq_powersave_func,
        .no_central_polling = true,
 };