Re: [PATCH 07/10] cpufreq: dt: Identify cpu-sharing for platforms without operating-points-v2

From: Viresh Kumar
Date: Mon Apr 25 2016 - 05:36:57 EST


On 22-04-16, 15:27, Stephen Boyd wrote:
> On 04/21, Viresh Kumar wrote:
> > @@ -167,14 +167,16 @@ static int cpufreq_init(struct cpufreq_policy *policy)
> > /* Get OPP-sharing information from "operating-points-v2" bindings */
> > ret = dev_pm_opp_of_get_sharing_cpus(cpu_dev, policy->cpus);
> > if (ret) {
> > + if (ret != -ENOENT)
> > + goto out_put_clk;
> > +
> > /*
> > * operating-points-v2 not supported, fallback to old method of
> > - * finding shared-OPPs for backward compatibility.
> > + * finding shared-OPPs for backward compatibility if the
> > + * platform hasn't set sharing CPUs.
> > */
> > - if (ret == -ENOENT)
> > - opp_v1 = true;
> > - else
> > - goto out_put_clk;
> > + if (dev_pm_opp_get_sharing_cpus(cpu_dev, policy->cpus))
> > + fallback = true;
>
> I'm sort of lost, we make the same call twice here. Why would the
> return value change between the first time and the second?

Two different APIs, which look similar :)

The first one tries to find the sharing-cpus relation from DT, the
other one is for v1 bindings and finds it due to platform code
dev_pm_opp_set_sharing_cpus() call.

--
viresh