Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PM: devfreq: init performance/powersave governor

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>

authored by

Xiaoguang Chen and committed by
Rafael J. Wysocki
0b7c328f 69964ea4

+14
+7
drivers/devfreq/governor_performance.c
··· 10 10 */ 11 11 12 12 #include <linux/devfreq.h> 13 + #include "governor.h" 13 14 14 15 static int devfreq_performance_func(struct devfreq *df, 15 16 unsigned long *freq) ··· 26 25 return 0; 27 26 } 28 27 28 + static int performance_init(struct devfreq *devfreq) 29 + { 30 + return update_devfreq(devfreq); 31 + } 32 + 29 33 const struct devfreq_governor devfreq_performance = { 30 34 .name = "performance", 35 + .init = performance_init, 31 36 .get_target_freq = devfreq_performance_func, 32 37 .no_central_polling = true, 33 38 };
+7
drivers/devfreq/governor_powersave.c
··· 10 10 */ 11 11 12 12 #include <linux/devfreq.h> 13 + #include "governor.h" 13 14 14 15 static int devfreq_powersave_func(struct devfreq *df, 15 16 unsigned long *freq) ··· 23 22 return 0; 24 23 } 25 24 25 + static int powersave_init(struct devfreq *devfreq) 26 + { 27 + return update_devfreq(devfreq); 28 + } 29 + 26 30 const struct devfreq_governor devfreq_powersave = { 27 31 .name = "powersave", 32 + .init = powersave_init, 28 33 .get_target_freq = devfreq_powersave_func, 29 34 .no_central_polling = true, 30 35 };