From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Mikko Perttunen <mikko.perttunen@kapsi.fi>
Cc: Michael Turquette <mturquette@linaro.org>,
Thierry Reding <thierry.reding@gmail.com>,
swarren@wwwdotorg.org, gnurou@gmail.com, pdeschrijver@nvidia.com,
rjw@rjwysocki.net, viresh.kumar@linaro.org, pwalmsley@nvidia.com,
vinceh@nvidia.com, pgaikwad@nvidia.com,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
linux-tegra@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, tuomas.tynkkynen@iki.fi
Subject: Re: [PATCH v8 00/18] Tegra124 CL-DVFS / DFLL clocksource + cpufreq
Date: Tue, 14 Apr 2015 19:21:08 +0200 [thread overview]
Message-ID: <20150414192108.6a376ce8@bbrezillon> (raw)
In-Reply-To: <552CF947.9030609@kapsi.fi>
Hi Mikko,
On Tue, 14 Apr 2015 14:25:59 +0300
Mikko Perttunen <mikko.perttunen@kapsi.fi> wrote:
> On 04/11/2015 12:11 AM, Michael Turquette wrote:
> > Quoting Thierry Reding (2015-03-11 03:07:43)
> >> Hi Mike,
> >>
> >> Have you had a chance to look at these changes to the Tegra clock
> >> driver? If you're fine with it, I'd like to take these patches through
> >> the Tegra tree because the rest of the series depends on them. I can
> >> provide a stable branch in case we need to base other Tegra clock
> >> changes on top of this.
> >
> > Hi Thierry,
> >
> > Clock patches (and corresponding DT binding descriptions and changes to
> > DTS) look fine to me. Please add:
> >
> > Acked-by: Michael Turquette <mturquette@linaro.org>
> >
> > I did have a question about the beahvior of clk_put in one of Mikko's
> > patches but it should not gate this series. I'm just trying to find out
> > if we have a bug in the framework or if the Tegra driver is a special
> > case.
> >
> > Also I do not think a stable branch is necessary.
> >
> > Regards,
> > Mike
> >
>
> Looks like in the meantime, this has been partially broken by
> 03bc10ab5b0f "clk: check ->determine/round_rate() return value in
> clk_calc_new_rates". The highest rates supported by the DFLL clock have
> 1 in the MSB, so those cannot be entered after the aforementioned patch,
> as the return value of round_rate is interpreted as an error. Avenues
> that I can see: 1) revert the above patch 2) restrict the cpu clock rate
> to those with 0 in the MSB 3) move to 64-bit clock rates.
How about changing ->determine_rate() and ->round_rate() prototypes so
that they always return 0 or an error code and passing the adjusted_rate
as an argument ?
Something like that:
int (*round_rate)(struct clk_hw *hw, unsigned long *rate,
unsigned long *parent_rate);
int (*determine_rate)(struct clk_hw *hw, unsigned long *rate,
unsigned long min_rate,
unsigned long max_rate,
unsigned long *best_parent_rate,
struct clk_hw **best_parent_hw);
I know this implies a lot of changes (in all clock drivers and in the
core infrastructure), but I really think we should not mix error codes
and clock frequencies (even if we decide to move to a 64 bits rate
approach).
Anyway, IMHO the only alternative to this solution is solution #3,
because #1 implies re-introducing another bug where
->round_rate()/->determine_rate() are silently ignored, and #2 implies
lying about your DFLL capabilities.
Mike, what's your opinion ?
Best Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: boris.brezillon@free-electrons.com (Boris Brezillon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 00/18] Tegra124 CL-DVFS / DFLL clocksource + cpufreq
Date: Tue, 14 Apr 2015 19:21:08 +0200 [thread overview]
Message-ID: <20150414192108.6a376ce8@bbrezillon> (raw)
In-Reply-To: <552CF947.9030609@kapsi.fi>
Hi Mikko,
On Tue, 14 Apr 2015 14:25:59 +0300
Mikko Perttunen <mikko.perttunen@kapsi.fi> wrote:
> On 04/11/2015 12:11 AM, Michael Turquette wrote:
> > Quoting Thierry Reding (2015-03-11 03:07:43)
> >> Hi Mike,
> >>
> >> Have you had a chance to look at these changes to the Tegra clock
> >> driver? If you're fine with it, I'd like to take these patches through
> >> the Tegra tree because the rest of the series depends on them. I can
> >> provide a stable branch in case we need to base other Tegra clock
> >> changes on top of this.
> >
> > Hi Thierry,
> >
> > Clock patches (and corresponding DT binding descriptions and changes to
> > DTS) look fine to me. Please add:
> >
> > Acked-by: Michael Turquette <mturquette@linaro.org>
> >
> > I did have a question about the beahvior of clk_put in one of Mikko's
> > patches but it should not gate this series. I'm just trying to find out
> > if we have a bug in the framework or if the Tegra driver is a special
> > case.
> >
> > Also I do not think a stable branch is necessary.
> >
> > Regards,
> > Mike
> >
>
> Looks like in the meantime, this has been partially broken by
> 03bc10ab5b0f "clk: check ->determine/round_rate() return value in
> clk_calc_new_rates". The highest rates supported by the DFLL clock have
> 1 in the MSB, so those cannot be entered after the aforementioned patch,
> as the return value of round_rate is interpreted as an error. Avenues
> that I can see: 1) revert the above patch 2) restrict the cpu clock rate
> to those with 0 in the MSB 3) move to 64-bit clock rates.
How about changing ->determine_rate() and ->round_rate() prototypes so
that they always return 0 or an error code and passing the adjusted_rate
as an argument ?
Something like that:
int (*round_rate)(struct clk_hw *hw, unsigned long *rate,
unsigned long *parent_rate);
int (*determine_rate)(struct clk_hw *hw, unsigned long *rate,
unsigned long min_rate,
unsigned long max_rate,
unsigned long *best_parent_rate,
struct clk_hw **best_parent_hw);
I know this implies a lot of changes (in all clock drivers and in the
core infrastructure), but I really think we should not mix error codes
and clock frequencies (even if we decide to move to a 64 bits rate
approach).
Anyway, IMHO the only alternative to this solution is solution #3,
because #1 implies re-introducing another bug where
->round_rate()/->determine_rate() are silently ignored, and #2 implies
lying about your DFLL capabilities.
Mike, what's your opinion ?
Best Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2015-04-14 17:21 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-01 12:44 [PATCH v8 00/18] Tegra124 CL-DVFS / DFLL clocksource + cpufreq Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 02/18] clk: tegra: Add library for the DFLL clock source (open-loop mode) Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 04/18] clk: tegra: Add functions for parsing CVB tables Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 06/18] clk: tegra: Add DFLL DVCO reset control for Tegra124 Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 08/18] clk: tegra: Save/restore CCLKG_BURST_POLICY on suspend Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 09/18] clk: tegra: Add the DFLL as a possible parent of the cclk_g clock Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 10/18] clk: tegra: Initialize PLL_X before CCLK_G to ensure it has a parent Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-04-10 21:08 ` Michael Turquette
2015-04-10 21:08 ` Michael Turquette
2015-04-10 21:08 ` Michael Turquette
2015-04-11 11:00 ` Mikko Perttunen
2015-04-11 11:00 ` Mikko Perttunen
2015-04-11 11:00 ` Mikko Perttunen
2015-04-13 12:17 ` Tomeu Vizoso
2015-04-13 12:17 ` Tomeu Vizoso
[not found] ` <CAAObsKCHUG7Auwu29My5xfynsQ1Jm6KB0bGxf1e3uUO6dvsBRA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-13 19:31 ` Michael Turquette
2015-04-13 19:31 ` Michael Turquette
2015-04-13 19:31 ` Michael Turquette
2015-04-13 19:35 ` Mikko Perttunen
2015-04-13 19:35 ` Mikko Perttunen
2015-04-13 19:35 ` Mikko Perttunen
[not found] ` <1425213881-5262-1-git-send-email-mikko.perttunen-/1wQRMveznE@public.gmane.org>
2015-03-01 12:44 ` [PATCH v8 01/18] clk: tegra: Add binding for the Tegra124 DFLL clocksource Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 03/18] clk: tegra: Add closed loop support for the DFLL Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 05/18] clk: tegra: Introduce ability for SoC-specific reset control callbacks Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 07/18] clk: tegra: Add Tegra124 DFLL clocksource platform driver Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 11/18] ARM: tegra: Add the DFLL to Tegra124 device tree Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 16/18] ARM: tegra: Add entries for cpufreq on Tegra124 Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 12/18] ARM: tegra: Enable the DFLL on the Jetson TK1 Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 13/18] cpufreq: tegra124: Add device tree bindings Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 14/18] cpufreq: tegra: Rename tegra-cpufreq to tegra20-cpufreq Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 15/18] cpufreq: Add cpufreq driver for Tegra124 Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-02 8:49 ` Paul Bolle
2015-03-02 8:49 ` Paul Bolle
2015-03-03 11:33 ` Mikko Perttunen
2015-03-03 11:33 ` Mikko Perttunen
2015-03-04 7:11 ` Tuomas Tynkkynen
2015-03-04 7:11 ` Tuomas Tynkkynen
2015-03-05 10:15 ` Mikko Perttunen
2015-03-05 10:15 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 17/18] ARM: tegra: Add CPU regulator to the Jetson TK1 device tree Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-01 12:44 ` [PATCH v8 18/18] ARM: tegra: enable Tegra124 cpufreq driver by default Mikko Perttunen
2015-03-01 12:44 ` Mikko Perttunen
2015-03-11 10:07 ` [PATCH v8 00/18] Tegra124 CL-DVFS / DFLL clocksource + cpufreq Thierry Reding
2015-03-11 10:07 ` Thierry Reding
2015-04-10 21:11 ` Michael Turquette
2015-04-10 21:11 ` Michael Turquette
2015-04-14 11:25 ` Mikko Perttunen
2015-04-14 11:25 ` Mikko Perttunen
2015-04-14 17:21 ` Boris Brezillon [this message]
2015-04-14 17:21 ` Boris Brezillon
2015-04-14 19:40 ` Mikko Perttunen
2015-04-14 19:40 ` Mikko Perttunen
2015-04-14 21:06 ` Michael Turquette
2015-04-14 21:06 ` Michael Turquette
2015-04-14 21:10 ` Mikko Perttunen
2015-04-14 21:10 ` Mikko Perttunen
2015-04-14 14:43 ` Thierry Reding
2015-04-14 14:43 ` Thierry Reding
2015-04-14 21:09 ` Michael Turquette
2015-04-14 21:09 ` Michael Turquette
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=20150414192108.6a376ce8@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=gnurou@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=mikko.perttunen@kapsi.fi \
--cc=mturquette@linaro.org \
--cc=pdeschrijver@nvidia.com \
--cc=pgaikwad@nvidia.com \
--cc=pwalmsley@nvidia.com \
--cc=rjw@rjwysocki.net \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@gmail.com \
--cc=tuomas.tynkkynen@iki.fi \
--cc=vinceh@nvidia.com \
--cc=viresh.kumar@linaro.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 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.