Message ID | 20201105125524.4409-7-ionela.voinescu@arm.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | cppc_cpufreq: fix, clarify and improve support | expand |
On 05-11-20, 12:55, Ionela Voinescu wrote: > The previous coordination type handling in the cppc_cpufreq init code > created some confusion: the comment mentioned "Support only SW_ANY for > now" while only the SW_ALL/ALL case resulted in a failure. The other > coordination types (HW_ALL/HW, NONE) were silently supported. > > Clarify support for coordination types while describing in comments the > intended behavior. > > Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com> > Cc: Rafael J. Wysocki <rjw@rjwysocki.net> > Cc: Viresh Kumar <viresh.kumar@linaro.org> > --- > drivers/cpufreq/cppc_cpufreq.c | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c > index fd2daeb59b49..60ac7f8049b5 100644 > --- a/drivers/cpufreq/cppc_cpufreq.c > +++ b/drivers/cpufreq/cppc_cpufreq.c > @@ -363,11 +363,22 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy) > policy->transition_delay_us = cppc_cpufreq_get_transition_delay_us(cpu); > policy->shared_type = domain->shared_type; > > - if (policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) { > + switch (policy->shared_type) { > + case CPUFREQ_SHARED_TYPE_HW: > + case CPUFREQ_SHARED_TYPE_NONE: > + /* Nothing to be done - we'll have a policy for each CPU */ > + break; > + case CPUFREQ_SHARED_TYPE_ANY: > + /* > + * All CPUs in the domain will share a policy and all cpufreq > + * operations will use a single cppc_cpudata structure stored > + * in policy->driver_data. > + */ > cpumask_copy(policy->cpus, domain->shared_cpu_map); > - } else if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL) { > - /* Support only SW_ANY for now. */ > - pr_debug("Unsupported CPU co-ord type\n"); > + break; > + default: > + pr_info("Unsupported cpufreq CPU co-ord type: %d\n", > + policy->shared_type); > return -EFAULT; > } > Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c index fd2daeb59b49..60ac7f8049b5 100644 --- a/drivers/cpufreq/cppc_cpufreq.c +++ b/drivers/cpufreq/cppc_cpufreq.c @@ -363,11 +363,22 @@ static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy) policy->transition_delay_us = cppc_cpufreq_get_transition_delay_us(cpu); policy->shared_type = domain->shared_type; - if (policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) { + switch (policy->shared_type) { + case CPUFREQ_SHARED_TYPE_HW: + case CPUFREQ_SHARED_TYPE_NONE: + /* Nothing to be done - we'll have a policy for each CPU */ + break; + case CPUFREQ_SHARED_TYPE_ANY: + /* + * All CPUs in the domain will share a policy and all cpufreq + * operations will use a single cppc_cpudata structure stored + * in policy->driver_data. + */ cpumask_copy(policy->cpus, domain->shared_cpu_map); - } else if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL) { - /* Support only SW_ANY for now. */ - pr_debug("Unsupported CPU co-ord type\n"); + break; + default: + pr_info("Unsupported cpufreq CPU co-ord type: %d\n", + policy->shared_type); return -EFAULT; }
The previous coordination type handling in the cppc_cpufreq init code created some confusion: the comment mentioned "Support only SW_ANY for now" while only the SW_ALL/ALL case resulted in a failure. The other coordination types (HW_ALL/HW, NONE) were silently supported. Clarify support for coordination types while describing in comments the intended behavior. Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com> Cc: Rafael J. Wysocki <rjw@rjwysocki.net> Cc: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/cpufreq/cppc_cpufreq.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-)