[cut] > The current version of this looks good to me and takes care of all the issues > I > raised earlier. Thanks. > >> +static int sugov_limits(struct cpufreq_policy *policy) >> +{ >> + struct sugov_policy *sg_policy = policy->governor_data; >> + >> + if (!policy->fast_switch_enabled) { >> + mutex_lock(&sg_policy->work_lock); >> + >> + if (policy->max < policy->cur) >> + __cpufreq_driver_target(policy, policy->max, >> + CPUFREQ_RELATION_H); >> + else if (policy->min > policy->cur) >> + __cpufreq_driver_target(policy, policy->min, >> + CPUFREQ_RELATION_L); >> + >> + mutex_unlock(&sg_policy->work_lock); >> + } >> + >> + sg_policy->need_freq_update = true; > > I am wondering why we need to do this for !fast_switch_enabled case?
That will cause the rate limit to be ignored in the utilization update handler which may be necessary if it is set to a relatively large value (like 1 s). >> + return 0; >> +} > > Apart from that: > > Acked-by: Viresh Kumar <viresh.ku...@linaro.org> Thanks, Rafael