]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
thermal: db8500: pass cpu_present_mask to cpufreq_cooling_register()
authorViresh Kumar <viresh.kumar@linaro.org>
Thu, 4 Dec 2014 04:11:44 +0000 (09:41 +0530)
committerEduardo Valentin <edubezval@gmail.com>
Mon, 8 Dec 2014 16:08:54 +0000 (12:08 -0400)
cpufreq_cooling_register() expects mask of all the CPUs where frequency
constraint is applicable.

This platform has more than one CPU to which these constraints will apply and so
passing mask of only CPU0 wouldn't be sufficient. Also, this platform has a
single cluster of CPUs and the constraint applies to all CPUs.

If CPU0 is hoplugged out then we may face strange BUGs as cpu_cooling framework
isn't aware of any siblings sharing clock line.

Fix it by passing cpu_present_mask to cpufreq_cooling_register().

Cc: Hongbo Zhang <hongbo.zhang@linaro.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/db8500_cpufreq_cooling.c

index 1ac7ec651c3f34bfd59c7607a9a6ff183f5af138..3cc3dd998e6f84294111e5d182439788aa5f5573 100644 (file)
 static int db8500_cpufreq_cooling_probe(struct platform_device *pdev)
 {
        struct thermal_cooling_device *cdev;
-       struct cpumask mask_val;
-
-       cpumask_set_cpu(0, &mask_val);
-       cdev = cpufreq_cooling_register(&mask_val);
 
+       cdev = cpufreq_cooling_register(cpu_present_mask);
        if (IS_ERR(cdev)) {
                dev_err(&pdev->dev, "Failed to register cooling device\n");
                return PTR_ERR(cdev);