Re: [PATCH] PM: devfreq: init performance/powersave governor

From: MyungJoo Ham
Date: Fri Apr 27 2012 - 00:39:07 EST


> 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@xxxxxxxxxxx>
Acked-by: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>

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.



> ---
> drivers/devfreq/governor_performance.c | 7 +++++++
> drivers/devfreq/governor_powersave.c | 7 +++++++
> 2 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/devfreq/governor_performance.c b/drivers/devfreq/governor_performance.c
> index 574a06b..af75ddd 100644
> --- a/drivers/devfreq/governor_performance.c
> +++ b/drivers/devfreq/governor_performance.c
> @@ -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,
> };
> diff --git a/drivers/devfreq/governor_powersave.c b/drivers/devfreq/governor_powersave.c
> index d742d4a..fec0cdb 100644
> --- a/drivers/devfreq/governor_powersave.c
> +++ b/drivers/devfreq/governor_powersave.c
> @@ -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,
> };
> --
> 1.7.0.4
>
>
翁{.nÇ+돴윯돪†+%듚lzwm낂b앸㎠咽r¸›zX㎉®w¥Š{ayºÊ뉅숇,j?f"·hš뗠z¹®wⅱ¸ ◁¦j:+v돣ŠwèjØm¶Ÿÿ¾«묎çzZ+껠šŽ듶¢j"얎!¶iO뺞¬z·švØ^¶m§ÿ操 nÆ듺þY&—