From: g.liakhovetski@gmx.de (Guennadi Liakhovetski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2] cpufreq: ARM big LITTLE: Add generic cpufreq driver and its DT glue
Date: Thu, 7 Mar 2013 22:56:54 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.64.1303072248560.20470@axis700.grange> (raw)
In-Reply-To: <6cba8f153cfd4b0d3075a34a6dfe287bdec2eb06.1362676407.git.viresh.kumar@linaro.org>
Hi Viresh
On Fri, 8 Mar 2013, Viresh Kumar wrote:
> big LITTLE is ARM's new Architecture focussing power/performance needs of modern
> world. More information about big LITTLE can be found here:
>
> http://www.arm.com/products/processors/technologies/biglittleprocessing.php
> http://lwn.net/Articles/481055/
>
> In order to keep cpufreq support for all big LITTLE platforms simple/generic,
> this patch tries to add a generic cpufreq driver layer for all big LITTLE
> platforms.
I like generic drivers :) cpufreq-cpu0 is yet another such generic
(cpufreq) driver. Now, comparing the functionality of the two:
[snip]
> +/* Set clock frequency */
> +static int bL_cpufreq_set_target(struct cpufreq_policy *policy,
> + unsigned int target_freq, unsigned int relation)
> +{
> + struct cpufreq_freqs freqs;
> + u32 cpu = policy->cpu, freq_tab_idx, cur_cluster;
> + int ret = 0;
> +
> + cur_cluster = cpu_to_cluster(policy->cpu);
> +
> + freqs.old = bL_cpufreq_get(policy->cpu);
> +
> + /* Determine valid target frequency using freq_table */
> + cpufreq_frequency_table_target(policy, freq_table[cur_cluster],
> + target_freq, relation, &freq_tab_idx);
> + freqs.new = freq_table[cur_cluster][freq_tab_idx].frequency;
> +
> + freqs.cpu = policy->cpu;
> +
> + pr_debug("%s: cpu: %d, cluster: %d, oldfreq: %d, target freq: %d, new freq: %d\n",
> + __func__, cpu, cur_cluster, freqs.old, target_freq,
> + freqs.new);
> +
> + if (freqs.old == freqs.new)
> + return 0;
> +
> + for_each_cpu(freqs.cpu, policy->cpus)
> + cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> +
> + ret = clk_set_rate(clk[cur_cluster], freqs.new * 1000);
we see, that this driver "only" switches CPU clock frequencies. Whereas
the cpufreq-cpu0 driver also manipulates a regulator (if available)
directly. I understand, power-saving is also an important consideration
for big.LITTLE systems. So, I presume, you plan to implement voltage
switching in cpufreq notifiers? Now, my question is: is this (notifier)
actually the preferred method and the cpufreq-cpu0 driver is doing it
"wrongly?"
Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
next prev parent reply other threads:[~2013-03-07 21:56 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-07 17:14 [PATCH V2] cpufreq: ARM big LITTLE: Add generic cpufreq driver and its DT glue Viresh Kumar
2013-03-07 21:56 ` Guennadi Liakhovetski [this message]
2013-03-08 4:20 ` Viresh Kumar
2013-03-08 6:11 ` Guennadi Liakhovetski
2013-03-09 3:06 ` Viresh Kumar
2013-03-10 15:58 ` Francesco Lavra
2013-03-11 0:57 ` Viresh Kumar
2013-03-21 23:50 ` Rafael J. Wysocki
2013-03-22 2:21 ` Viresh Kumar
-- strict thread matches above, loose matches on Subject: below --
2013-03-26 9:51 Viresh Kumar
2013-03-26 13:17 ` Rob Herring
2013-03-26 14:30 ` Viresh Kumar
2013-04-13 20:13 ` Francesco Lavra
2013-04-15 7:02 ` Viresh Kumar
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=Pine.LNX.4.64.1303072248560.20470@axis700.grange \
--to=g.liakhovetski@gmx.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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