All of lore.kernel.org
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: Stephen Boyd <sboyd@codeaurora.org>,
	Mike Turquette <mturquette@linaro.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Lists linaro-kernel <linaro-kernel@lists.linaro.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	Arvind Chauhan <arvind.chauhan@arm.com>,
	linux-arm-msm@vger.kernel.org, Sachin Kamat <spk.linux@gmail.com>,
	Thomas P Abraham <thomas.ab@samsung.com>,
	Shawn Guo <shawn.guo@linaro.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Nishanth Menon <nm@ti.com>, Tomasz Figa <t.figa@samsung.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Kukjin Kim <kgene.kim@samsung.com>,
	Michal Simek <michal.simek@xilinx.com>,
	Rob Herring <rob.herring@linaro.org>,
	Santosh Shilimkar <santosh.shilimkar@ti.com>,
	Simon Horman <horms@verge.net.au>
Subject: Re: [PATCH 00/14] cpufreq: cpu0: Extend support beyond CPU0, V2
Date: Thu, 3 Jul 2014 08:14:04 +0530	[thread overview]
Message-ID: <CAKohponRv6+rzJnO4cYFhXn6On1+4-KoxFSA2iU_nz130gvsug@mail.gmail.com> (raw)
In-Reply-To: <53B4B0B3.9080000@codeaurora.org>

On 3 July 2014 06:54, Stephen Boyd <sboyd@codeaurora.org> wrote:
> I gave it a spin. It works so you can have my
>
> Tested-by: Stephen Boyd <sboyd@codeaurora.org>

Thanks, all suggested improvements are made and pushed again with
your Tested-by..

> I'm still concerned about the patch where we figure out if the clocks
> are shared. I worry about a configuration where there are different
> clocks for on/off (i.e. gates) that are per-cpu but they all source from
> the same divider or something that is per-cluster. In DT this may be
> described as different clock provider outputs for the gates and in the
> cpu node we would have different clock specifiers but in reality all the
> CPUs in that cluster are affected by the same frequency scaling.

Yeah, this is probably what matches with Rob's doubt. These can
actually be different. Good point.

> In this case we'll need to get help from the clock framework to
> determine that those gates clocks don't have any .set_rate() callback so
> they can't actually change rate independently, and then walk up the tree
> to their parents to see if they have a common ancestor that does change
> rates. That's where it becomes useful to have a clock framework API for
> this, like clk_shares_rate(struct clk *clk, struct clk *peer) or
> something that can hide all this from cpufreq. Here's what I think it
> would look like (totally untested/uncompiled):
>
> static struct clk *find_rate_changer(struct clk *clk)
> {
>
>         if (!clk)
>                 return NULL;
>
>         do {
>                 /* Rate could change by changing parents */
>                 if (clk->num_parents > 1)
>                         return clk;
>
>                 /* Rate could change by calling clk_set_rate() */
>                 if (clk->ops->set_rate)
>                         return clk;
>
>                 /*
>                  * This is odd, clk_set_rate() doesn't propagate
>                  * and this clock can't change rate or parents
>                  * so we must be at the root and the clock we
>                  * started at can't change rates. Just return the
>                  * root so that we can see if the other clock shares
>                  * the same root although CPUfreq should never care.
>                  */
>                 if (!(clk->flags & CLK_SET_RATE_PARENT))
>                         return clk;
>         } while ((clk = clk->parent))
>
>         return NULL;
> }
>
> bool clk_shares_rate(struct clk *clk, struct clk *peer)
> {
>         struct clk *p1, *p2;
>
>         p1 = find_rate_changer(clk);
>         p2 = find_rate_changer(peer)
>
>         return p1 == p2;
> }

I find it much better then doing what I did initially, simply matching clk_get()
outputs. Lets see what Mike has to say..

@Mike: Is this less ugly ? :)

  reply	other threads:[~2014-07-03  2:44 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-01 16:32 [PATCH 00/14] cpufreq: cpu0: Extend support beyond CPU0, V2 Viresh Kumar
2014-07-01 16:32 ` [PATCH 01/14] of: Create of_property_match() Viresh Kumar
2014-07-01 16:32 ` [PATCH 02/14] clk: Create of_clk_shared_by_cpus() Viresh Kumar
2014-07-01 18:00   ` Stephen Boyd
2014-07-02  1:57     ` Viresh Kumar
2014-07-09 14:38   ` Santosh Shilimkar
2014-07-09 14:38     ` Santosh Shilimkar
2014-07-09 15:20     ` Viresh Kumar
     [not found]   ` <5f7164d789e87c62d722b575980c92dfd0504334.1404231535.git.viresh.kumar@linar o.org>
2014-07-28 14:01     ` Grant Likely
2014-07-28 14:01       ` Grant Likely
2014-07-01 16:32 ` [PATCH 03/14] cpufreq: Add support for per-policy driver data Viresh Kumar
2014-07-09 14:33   ` Santosh Shilimkar
2014-07-09 14:33     ` Santosh Shilimkar
2014-07-09 15:07     ` Viresh Kumar
2014-07-01 16:32 ` [PATCH 04/14] cpufreq: cpu0: Add Module Author Viresh Kumar
2014-07-09 14:42   ` Santosh Shilimkar
2014-07-09 14:42     ` Santosh Shilimkar
2014-07-09 15:08     ` Viresh Kumar
2014-07-09 15:24       ` Santosh Shilimkar
2014-07-01 16:32 ` [PATCH 05/14] cpufreq: cpu0: don't validate clock on clk_put() Viresh Kumar
2014-07-09 14:42   ` Santosh Shilimkar
2014-07-09 14:42     ` Santosh Shilimkar
2014-07-01 16:32 ` [PATCH 06/14] cpufreq: cpu0: defer probe if clock isn't registered yet Viresh Kumar
2014-07-02  5:53   ` Shawn Guo
2014-07-02  5:53     ` Shawn Guo
2014-07-02  5:55     ` Viresh Kumar
2014-07-02 11:32       ` Viresh Kumar
2014-07-03  0:38         ` Stephen Boyd
2014-07-03  2:19           ` Viresh Kumar
2014-07-09 14:43             ` Santosh Shilimkar
2014-07-09 14:43               ` Santosh Shilimkar
2014-07-01 16:32 ` [PATCH 07/14] cpufreq: cpu0: OPPs can be populated at runtime Viresh Kumar
2014-07-01 18:02   ` Stephen Boyd
2014-07-02  2:03     ` Viresh Kumar
2014-07-02  4:03   ` [PATCH V2 Resend " Viresh Kumar
2014-07-09 14:44   ` [PATCH " Santosh Shilimkar
2014-07-09 14:44     ` Santosh Shilimkar
2014-07-09 15:09     ` Viresh Kumar
2014-07-10 11:19     ` Viresh Kumar
2014-07-10 12:39       ` Nishanth Menon
2014-07-10 13:31         ` Santosh Shilimkar
2014-07-10 13:36           ` Viresh Kumar
2014-07-01 16:32 ` [PATCH 08/14] cpufreq: cpu0: use dev_{err|warn|dbg} instead of pr_{err|warn|debug} Viresh Kumar
2014-07-09 14:45   ` Santosh Shilimkar
2014-07-09 14:45     ` Santosh Shilimkar
2014-07-01 16:32 ` [PATCH 09/14] cpufreq: cpu0: Move per-cluster initialization code to ->init() Viresh Kumar
2014-07-03  0:43   ` Stephen Boyd
2014-07-03  2:11     ` Viresh Kumar
2014-07-09 14:53   ` Santosh Shilimkar
2014-07-09 14:53     ` Santosh Shilimkar
2014-07-09 15:17     ` Viresh Kumar
2014-07-09 15:26       ` Santosh Shilimkar
2014-07-09 15:27         ` Viresh Kumar
2014-07-09 15:29           ` Santosh Shilimkar
2014-07-09 15:33             ` Viresh Kumar
2014-07-01 16:32 ` [PATCH 10/14] cpufreq: cpu0: try regulators with name "cpu-supply" Viresh Kumar
2014-07-01 16:32 ` [PATCH 11/14] cpufreq: cpu0: Make allocate_resources() work for any CPU Viresh Kumar
2014-07-01 16:32 ` [PATCH 12/14] cpufreq: cpu0: Extend support beyond CPU0 Viresh Kumar
2014-07-02  4:03   ` [PATCH V2 Resend " Viresh Kumar
2014-07-01 16:32 ` [PATCH 13/14] cpufreq: cpu0: rename driver and internals to 'cpufreq_generic' Viresh Kumar
2014-07-01 16:32 ` [PATCH 14/14] cpufreq: generic: set platform_{driver|device} '.name' to 'cpufreq-generic' Viresh Kumar
2014-07-02  4:12 ` [PATCH 00/14] cpufreq: cpu0: Extend support beyond CPU0, V2 Viresh Kumar
2014-07-03  1:24   ` Stephen Boyd
2014-07-03  2:44     ` Viresh Kumar [this message]
2014-07-03 22:16       ` Mike Turquette
2014-07-04  4:21         ` Viresh Kumar
2014-07-08  4:50           ` Viresh Kumar
2014-07-09 17:41             ` Stephen Boyd
2014-07-16 16:01             ` Viresh Kumar
2014-07-16 17:28               ` Thomas Petazzoni
2014-07-16 21:17                 ` Rafael J. Wysocki
2014-07-16 21:18               ` Rafael J. Wysocki
2014-07-17  0:28                 ` Viresh Kumar
2014-07-17  7:35                   ` Thomas Petazzoni
2014-07-17  7:41                     ` Viresh Kumar
2014-07-18  1:02                       ` Rafael J. Wysocki
2014-07-18  4:17                         ` Viresh Kumar
     [not found]                           ` <CAKohpomKzK8pMJs1gv+uXxhd17HtCQyfjSnVYw9KpGz6FwbgDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-24 10:48                             ` Viresh Kumar
2014-07-24 10:48                               ` Viresh Kumar
2014-07-25 14:29                               ` Rob Herring
     [not found]                                 ` <CAL_JsqKqCeU0zs+rS1vxsOeh=Kuw_-gaVHtGU76Lb6TchCTytw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-25 14:34                                   ` Viresh Kumar
2014-07-25 14:34                                     ` Viresh Kumar
2014-07-25 15:41                                 ` Thomas Petazzoni

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=CAKohponRv6+rzJnO4cYFhXn6On1+4-KoxFSA2iU_nz130gvsug@mail.gmail.com \
    --to=viresh.kumar@linaro.org \
    --cc=arvind.chauhan@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=horms@verge.net.au \
    --cc=kgene.kim@samsung.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=michal.simek@xilinx.com \
    --cc=mturquette@linaro.org \
    --cc=nm@ti.com \
    --cc=rjw@rjwysocki.net \
    --cc=rob.herring@linaro.org \
    --cc=santosh.shilimkar@ti.com \
    --cc=sboyd@codeaurora.org \
    --cc=shawn.guo@linaro.org \
    --cc=spk.linux@gmail.com \
    --cc=t.figa@samsung.com \
    --cc=thomas.ab@samsung.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.