summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2014-12-04 09:41:44 +0530
committerEduardo Valentin <edubezval@gmail.com>2014-12-08 12:08:54 -0400
commitb45257b10d7cc21ed0393f31e1f8ac6cdde9fa18 (patch)
tree95cdc2987eedd1c59c969e96177720cb1de8adee
parent0f1be51c358f740fe5183bd0bcd60076fdfb53d0 (diff)
downloadlinux-stable-b45257b10d7cc21ed0393f31e1f8ac6cdde9fa18.tar.gz
linux-stable-b45257b10d7cc21ed0393f31e1f8ac6cdde9fa18.tar.bz2
linux-stable-b45257b10d7cc21ed0393f31e1f8ac6cdde9fa18.zip
thermal: db8500: pass cpu_present_mask to cpufreq_cooling_register()
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>
-rw-r--r--drivers/thermal/db8500_cpufreq_cooling.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/thermal/db8500_cpufreq_cooling.c b/drivers/thermal/db8500_cpufreq_cooling.c
index 1ac7ec651c3f..3cc3dd998e6f 100644
--- a/drivers/thermal/db8500_cpufreq_cooling.c
+++ b/drivers/thermal/db8500_cpufreq_cooling.c
@@ -27,11 +27,8 @@
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);