From: Viresh Kumar <viresh.kumar@linaro.org>
To: Rafael Wysocki <rjw@rjwysocki.net>, edubezval@gmail.com
Cc: linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org,
l.majewski@samsung.com, Viresh Kumar <viresh.kumar@linaro.org>
Subject: [PATCH 5/7] cpu_cooling: Don't match min/max frequencies for all CPUs on cooling register
Date: Wed, 26 Nov 2014 11:23:00 +0530 [thread overview]
Message-ID: <4bb7d02f8267ad9efd4dab070d72c2f2659bc752.1416980448.git.viresh.kumar@linaro.org> (raw)
In-Reply-To: <cover.1416980447.git.viresh.kumar@linaro.org>
In-Reply-To: <cover.1416980447.git.viresh.kumar@linaro.org>
In __cpufreq_cooling_register() we try to match min/max frequencies for all CPUs
passed in 'clip_cpus' mask. This mask is the cpumask of cpus where the frequency
constraints will be applied.
Same frequency constraint can be applied only to the CPUs belonging to the same
cluster (i.e. CPUs sharing clock line). For all such CPUs we have a single
'struct cpufreq_policy' structure managing them and so getting policies for all
CPUs wouldn't make any sense as they will all return the same pointer.
So, remove this useless check of checking min/max for all CPUs. Also update doc
comment to make this more obvious that clip_cpus should be same as
policy->related_cpus.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
Sorry if I don't understand cpu-cooling well, haven't done much work on it :(
drivers/thermal/cpu_cooling.c | 19 ++-----------------
1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index 1ab0018..1193cc4 100644
--- a/drivers/thermal/cpu_cooling.c
+++ b/drivers/thermal/cpu_cooling.c
@@ -420,6 +420,7 @@ static struct notifier_block thermal_cpufreq_notifier_block = {
* __cpufreq_cooling_register - helper function to create cpufreq cooling device
* @np: a valid struct device_node to the cooling device device tree node
* @clip_cpus: cpumask of cpus where the frequency constraints will happen.
+ * Normally this should be same as cpufreq policy->related_cpus.
*
* This interface function registers the cpufreq cooling device with the name
* "thermal-cpufreq-%x". This api can support multiple instances of cpufreq
@@ -435,25 +436,9 @@ __cpufreq_cooling_register(struct device_node *np,
{
struct thermal_cooling_device *cool_dev;
struct cpufreq_cooling_device *cpufreq_dev = NULL;
- unsigned int min = 0, max = 0;
char dev_name[THERMAL_NAME_LENGTH];
- int ret = 0, i;
- struct cpufreq_policy policy;
+ int ret = 0;
- /* Verify that all the clip cpus have same freq_min, freq_max limit */
- for_each_cpu(i, clip_cpus) {
- /* continue if cpufreq policy not found and not return error */
- if (!cpufreq_get_policy(&policy, i))
- continue;
- if (min == 0 && max == 0) {
- min = policy.cpuinfo.min_freq;
- max = policy.cpuinfo.max_freq;
- } else {
- if (min != policy.cpuinfo.min_freq ||
- max != policy.cpuinfo.max_freq)
- return ERR_PTR(-EINVAL);
- }
- }
cpufreq_dev = kzalloc(sizeof(struct cpufreq_cooling_device),
GFP_KERNEL);
if (!cpufreq_dev)
--
2.0.3.693.g996b0fd
next prev parent reply other threads:[~2014-11-26 5:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-26 5:52 [PATCH 0/7] cpufreq: Register cooling device after policy is usable Viresh Kumar
2014-11-26 5:52 ` [PATCH 1/7] cpufreq: Fix formatting issues in 'struct cpufreq_driver' Viresh Kumar
2014-11-26 17:57 ` Eduardo Valentin
2014-11-26 5:52 ` [PATCH 2/7] cpufreq-dt: pass 'policy->related_cpus' to of_cpufreq_cooling_register() Viresh Kumar
2014-11-26 17:55 ` Eduardo Valentin
2014-11-26 5:52 ` [PATCH 3/7] cpufreq: Introduce ->usable() callback for cpufreq drivers Viresh Kumar
2014-11-26 17:58 ` Eduardo Valentin
2014-11-27 0:25 ` Rafael J. Wysocki
2014-11-27 0:28 ` Viresh Kumar
2014-11-26 5:52 ` [PATCH 4/7] cpufreq-dt: register cooling device from ->usable() callback Viresh Kumar
2014-11-26 17:59 ` Eduardo Valentin
2014-11-26 5:53 ` Viresh Kumar [this message]
2014-11-27 15:35 ` [PATCH 5/7] cpu_cooling: Don't match min/max frequencies for all CPUs on cooling register Eduardo Valentin
2014-11-28 9:19 ` Viresh Kumar
2014-11-26 5:53 ` [PATCH 6/7] cpu_cooling: don't iterate over all allowed_cpus to update cpufreq policy Viresh Kumar
2014-11-26 5:53 ` [PATCH 7/7] cpu_cooling: Don't check is_cpufreq_valid() Viresh Kumar
2014-11-26 17:54 ` [PATCH 0/7] cpufreq: Register cooling device after policy is usable Eduardo Valentin
2014-11-27 0:26 ` Rafael J. Wysocki
2014-11-27 15:33 ` Eduardo Valentin
2014-11-28 6:27 ` Viresh Kumar
2014-11-26 18:01 ` Eduardo Valentin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4bb7d02f8267ad9efd4dab070d72c2f2659bc752.1416980448.git.viresh.kumar@linaro.org \
--to=viresh.kumar@linaro.org \
--cc=edubezval@gmail.com \
--cc=l.majewski@samsung.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).