RE: [PATCH 1/3] PM / devfreq: Fix available_governor sysfs
From: MyungJoo Ham
Date: Mon Jan 23 2017 - 21:24:13 EST
> The devfreq using passive governor is not able to change the governor.
> So, the user can not change the governor through 'available_governor' sysfs
> entry. Also, the devfreq which don't use the passive governor is not able to
> change to 'passive' governor on the fly.
>
> Fixes: 996133119f57 ("PM / devfreq: Add new passive governor")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
> ---
> drivers/devfreq/devfreq.c | 34 +++++++++++++++++++++++++++++++++-
> 1 file changed, 33 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
> index 4bd7a8f71b07..a2c575a5a9ab 100644
> --- a/drivers/devfreq/devfreq.c
> +++ b/drivers/devfreq/devfreq.c
> @@ -43,6 +43,11 @@
> static LIST_HEAD(devfreq_list);
> static DEFINE_MUTEX(devfreq_list_lock);
>
> +static int is_passive_gov(const char *governor_name)
> +{
> + return (!strncmp(governor_name, "passive", 7)) ? 1 : 0;
> +}
> +
Having a special function for a governor in devfreq.c isn't looking good.
Could you create it more general?
(e.g., denying being replaced from passive governor)
I'd suggest to "define" data value of event_handler to include the reason
of STOP event for DEVFREQ_GOV_STOP. Then, a governor may "reject" it
depending on the reason. (the reason is to be defined in devfreq.h as well)
Then, the modification can be minimal and general for all others.
The modification in this commit looks too hacky.
Cheers,
MyungJoo