cpufreq-dt: pass 'policy->related_cpus' to of_cpufreq_cooling_register()
authorViresh Kumar <viresh.kumar@linaro.org>
Thu, 27 Nov 2014 00:37:50 +0000 (06:07 +0530)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 29 Nov 2014 22:38:38 +0000 (23:38 +0100)
The second parameter of of_cpufreq_cooling_register() should be the CPUs to
which the frequency constraint will apply. As the cpufreq-dt driver now supports
platforms with multiple 'struct cpufreq_policy' instances (i.e. > 1 clock
domains for CPUs), passing 'cpu_present_mask' isn't correct anymore. As every
policy will have a set of CPUs and that may not be equal to 'cpu_present_mask'
always.

So, pass only mask of CPUs which are controlled by current policy.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Eduardo Valentin <edubezval@gmail.com>
Tested-by: Eduardo Valentin <edubezval@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq-dt.c

index 8cba13df5f289d0e8fb0b5744944d665b4e2c692..7374fc4b6bb3d48b25824b5343278b70490e4889 100644 (file)
@@ -274,7 +274,7 @@ static int cpufreq_init(struct cpufreq_policy *policy)
         * thermal DT code takes care of matching them.
         */
        if (of_find_property(np, "#cooling-cells", NULL)) {
-               cdev = of_cpufreq_cooling_register(np, cpu_present_mask);
+               cdev = of_cpufreq_cooling_register(np, policy->related_cpus);
                if (IS_ERR(cdev))
                        dev_err(cpu_dev,
                                "running cpufreq without cooling device: %ld\n",