Skip to contentSkip to conversation

PM: devfreq: init performance/powersave governor

PATCH Applied MyungJoo Ham 2 participants 2 messages Apr 27, 2012 – Apr 29, 2012

lore
Share & tools
lore

MyungJoo Ham

author Acked-by
#0 lore raw
Quoted 6 lines

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.

Hello Xiaoguang,

Yes, if we do not call any QoS, min/max, OPP interfaces or enable polling, we need to call this at init. In fact, this is a bugfix patch.

Thank you!

Cheers!
MyungJoo.

Quoted 63 lines
---
 drivers/devfreq/governor_performance.c |    7 +++++++
 drivers/devfreq/governor_powersave.c   |    7 +++++++
 2 files changed, 14 insertions(+), 0 deletions(-)
drivers/devfreq/governor_performance.c +7 -0
index 574a06b..af75ddd 100644
@@ -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,
 };
drivers/devfreq/governor_powersave.c +7 -0
index d742d4a..fec0cdb 100644
@@ -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,
 };
Signature · 1 line
1.7.0.4

�淸�{.n�+돴윯돪�+%듚�깁負쪐w��{.n�+돴쪐{깸G쳺��{ay����,j�f"톒쉹��묎�z_溫(�쉸듶줷"얎�m����G쳺�◀?솳鈺�&x�~뤳턨O뺞촾퇉v�^�m��� �띠�◀?뻀�

#1 lore raw
Quoted 7 lines · MyungJoo Ham
Quoted 6 lines

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.

Applied to linux-pm/linux-next.

Thanks,
Rafael

Quoted 72 lines

Hello Xiaoguang,

Yes, if we do not call any QoS, min/max, OPP interfaces or enable polling, we need to call this at init. In fact, this is a bugfix patch.

Thank you!

Cheers!
MyungJoo.

Quoted 59 lines
---
 drivers/devfreq/governor_performance.c |    7 +++++++
 drivers/devfreq/governor_powersave.c   |    7 +++++++
 2 files changed, 14 insertions(+), 0 deletions(-)
drivers/devfreq/governor_performance.c +7 -0
index 574a06b..af75ddd 100644
@@ -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,
 };
drivers/devfreq/governor_powersave.c +7 -0
index d742d4a..fec0cdb 100644
@@ -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,
 };