From d6827976a56d429848ab8ababa2779a21c68d65f Mon Sep 17 00:00:00 2001 Message-Id: From: Viresh Kumar Date: Tue, 29 Jan 2013 09:55:00 +0530 Subject: [PATCH 1/2] cpufreq: Set policy->related_cpus to atleast policy->cpus With the addition of following patch, related_cpus is required to be set by cpufreq platform drivers: commit c1070fd743533efb54e98142252283583f379190 Author: Viresh Kumar Date: Mon Jan 14 13:23:04 2013 +0000 cpufreq: Simplify cpufreq_add_dev() Because this change is required by all platform drivers, why not do this in the core itself. Hence, this patch is an attempt towards fixing all broken drivers. From now on, platforms don't really need to set related_cpus from their init() routines, as the same work is done by core too. If platform driver needs to set the related_cpus mask with some additional cpus, other than cpus present in policy->cpus, they are free to do it as we aren't overriding anything. Signed-off-by: Viresh Kumar --- Inderpal, Can you please add your tested-by for this patch? And this will require you to drop your patch for exynos-cpufreq.c :) drivers/cpufreq/cpufreq.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index f5dc02b..db81382 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -554,8 +554,6 @@ static ssize_t show_cpus(const struct cpumask *mask, char *buf) */ static ssize_t show_related_cpus(struct cpufreq_policy *policy, char *buf) { - if (cpumask_empty(policy->related_cpus)) - return show_cpus(policy->cpus, buf); return show_cpus(policy->related_cpus, buf); } @@ -945,6 +943,9 @@ static int cpufreq_add_dev(struct device *dev, struct subsys_interface *sif) goto err_unlock_policy; } + /* related cpus should atleast have policy->cpus */ + cpumask_or(policy->related_cpus, policy->related_cpus, policy->cpus); + /* * affected cpus must always be the one, which are online. We aren't * managing offline cpus here. -- 1.7.12.rc2.18.g61b472e