All of lore.kernel.org
 help / color / mirror / Atom feed
From: mturquette@ti.com (Turquette, Mike)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] clk: always pass parent_rate into .round_rate
Date: Tue, 17 Apr 2012 18:05:28 -0700	[thread overview]
Message-ID: <CAJOA=zMytn8i69wHOvnwfks=Ze8wVwh+Q97cPcR5+o1MwmQHhg@mail.gmail.com> (raw)
In-Reply-To: <1334235019-15553-1-git-send-email-shawn.guo@linaro.org>

On Thu, Apr 12, 2012 at 5:50 AM, Shawn Guo <shawn.guo@linaro.org> wrote:
> The parent_rate will likely be used by most .round_rate implementation
> no matter whether flag CLK_SET_RATE_PARENT is set or not, so let's
> always pass parent_rate into .round_rate.
>
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>

Thanks for the patch Shawn.  I've pulled this into my -next branch.

Regards,
Mike

> ---
> ?drivers/clk/clk-divider.c | ? 12 +++---------
> ?drivers/clk/clk.c ? ? ? ? | ? 16 +++++++---------
> ?2 files changed, 10 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
> index add784b..04439f1 100644
> --- a/drivers/clk/clk-divider.c
> +++ b/drivers/clk/clk-divider.c
> @@ -67,8 +67,8 @@ static int clk_divider_bestdiv(struct clk_hw *hw, unsigned long rate,
> ? ? ? ?if (divider->flags & CLK_DIVIDER_ONE_BASED)
> ? ? ? ? ? ? ? ?maxdiv--;
>
> - ? ? ? if (!best_parent_rate) {
> - ? ? ? ? ? ? ? parent_rate = __clk_get_rate(__clk_get_parent(hw->clk));
> + ? ? ? if (!(__clk_get_flags(hw->clk) & CLK_SET_RATE_PARENT)) {
> + ? ? ? ? ? ? ? parent_rate = *best_parent_rate;
> ? ? ? ? ? ? ? ?bestdiv = DIV_ROUND_UP(parent_rate, rate);
> ? ? ? ? ? ? ? ?bestdiv = bestdiv == 0 ? 1 : bestdiv;
> ? ? ? ? ? ? ? ?bestdiv = bestdiv > maxdiv ? maxdiv : bestdiv;
> @@ -108,13 +108,7 @@ static long clk_divider_round_rate(struct clk_hw *hw, unsigned long rate,
> ? ? ? ?int div;
> ? ? ? ?div = clk_divider_bestdiv(hw, rate, prate);
>
> - ? ? ? if (prate)
> - ? ? ? ? ? ? ? return *prate / div;
> - ? ? ? else {
> - ? ? ? ? ? ? ? unsigned long r;
> - ? ? ? ? ? ? ? r = __clk_get_rate(__clk_get_parent(hw->clk));
> - ? ? ? ? ? ? ? return r / div;
> - ? ? ? }
> + ? ? ? return *prate / div;
> ?}
>
> ?static int clk_divider_set_rate(struct clk_hw *hw, unsigned long rate)
> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
> index af2bf12..19caa0a 100644
> --- a/drivers/clk/clk.c
> +++ b/drivers/clk/clk.c
> @@ -582,7 +582,7 @@ EXPORT_SYMBOL_GPL(clk_get_rate);
> ?*/
> ?unsigned long __clk_round_rate(struct clk *clk, unsigned long rate)
> ?{
> - ? ? ? unsigned long unused;
> + ? ? ? unsigned long parent_rate = 0;
>
> ? ? ? ?if (!clk)
> ? ? ? ? ? ? ? ?return -EINVAL;
> @@ -590,10 +590,10 @@ unsigned long __clk_round_rate(struct clk *clk, unsigned long rate)
> ? ? ? ?if (!clk->ops->round_rate)
> ? ? ? ? ? ? ? ?return clk->rate;
>
> - ? ? ? if (clk->flags & CLK_SET_RATE_PARENT)
> - ? ? ? ? ? ? ? return clk->ops->round_rate(clk->hw, rate, &unused);
> - ? ? ? else
> - ? ? ? ? ? ? ? return clk->ops->round_rate(clk->hw, rate, NULL);
> + ? ? ? if (clk->parent)
> + ? ? ? ? ? ? ? parent_rate = clk->parent->rate;
> +
> + ? ? ? return clk->ops->round_rate(clk->hw, rate, &parent_rate);
> ?}
>
> ?/**
> @@ -763,7 +763,7 @@ static void clk_calc_subtree(struct clk *clk, unsigned long new_rate)
> ?static struct clk *clk_calc_new_rates(struct clk *clk, unsigned long rate)
> ?{
> ? ? ? ?struct clk *top = clk;
> - ? ? ? unsigned long best_parent_rate;
> + ? ? ? unsigned long best_parent_rate = 0;
> ? ? ? ?unsigned long new_rate;
>
> ? ? ? ?/* sanity */
> @@ -775,9 +775,6 @@ static struct clk *clk_calc_new_rates(struct clk *clk, unsigned long rate)
> ? ? ? ? ? ? ? ?if (!clk->ops->round_rate) {
> ? ? ? ? ? ? ? ? ? ? ? ?clk->new_rate = clk->rate;
> ? ? ? ? ? ? ? ? ? ? ? ?return NULL;
> - ? ? ? ? ? ? ? } else {
> - ? ? ? ? ? ? ? ? ? ? ? new_rate = clk->ops->round_rate(clk->hw, rate, NULL);
> - ? ? ? ? ? ? ? ? ? ? ? goto out;
> ? ? ? ? ? ? ? ?}
> ? ? ? ?}
>
> @@ -794,6 +791,7 @@ static struct clk *clk_calc_new_rates(struct clk *clk, unsigned long rate)
> ? ? ? ? ? ? ? ?goto out;
> ? ? ? ?}
>
> + ? ? ? best_parent_rate = clk->parent->rate;
> ? ? ? ?new_rate = clk->ops->round_rate(clk->hw, rate, &best_parent_rate);
>
> ? ? ? ?if (best_parent_rate != clk->parent->rate) {
> --
> 1.7.5.4
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2012-04-18  1:05 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-12  1:02 [PATCH 00/13] common clk framework misc fixes Mike Turquette
2012-04-12  1:02 ` Mike Turquette
2012-04-12  1:02 ` [PATCH 01/13] clk: core: correct clk_set_rate kerneldoc Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  4:28   ` Viresh Kumar
2012-04-12  4:28     ` Viresh Kumar
2012-04-13 22:23     ` Turquette, Mike
2012-04-13 22:23       ` Turquette, Mike
2012-04-12  7:24   ` Andrew Lunn
2012-04-12  7:24     ` Andrew Lunn
2012-04-12  7:38     ` Amit Kucheria
2012-04-12  7:38       ` Amit Kucheria
2012-04-12  1:02 ` [PATCH 02/13] clk: core: remove dead code paths Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:14   ` Viresh Kumar
2012-04-12  6:14     ` Viresh Kumar
2012-04-13 22:27     ` Turquette, Mike
2012-04-13 22:27       ` Turquette, Mike
2012-04-12  1:02 ` [PATCH 03/13] clk: core: clk_calc_new_rates handles NULL parents Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  1:02 ` [PATCH 04/13] clk: core: enforce clk_ops consistency Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:17   ` Viresh Kumar
2012-04-12  6:17     ` Viresh Kumar
2012-04-12  1:02 ` [PATCH 05/13] clk: use kzalloc in clk_register_mux Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:18   ` Viresh Kumar
2012-04-12  6:18     ` Viresh Kumar
2012-04-12  1:02 ` [PATCH 06/13] clk: remove unnecessary EXPORT_SYMBOL_GPL Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:18   ` Viresh Kumar
2012-04-12  6:18     ` Viresh Kumar
2012-04-12  1:02 ` [PATCH 07/13] clk: add "const" for clk_ops of basic clks Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:19   ` Viresh Kumar
2012-04-12  6:19     ` Viresh Kumar
2012-04-12  1:02 ` [PATCH 08/13] clk: declare clk_ops of basic clks in clk-provider.h Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:20   ` Viresh Kumar
2012-04-12  6:20     ` Viresh Kumar
2012-04-12  1:02 ` [PATCH 09/13] clk: Make clk_get_rate() return 0 on error Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:21   ` Viresh Kumar
2012-04-12  6:21     ` Viresh Kumar
2012-04-12  1:02 ` [PATCH 10/13] clk: Remove comment for end of CONFIG_COMMON_CLK section Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  1:02 ` [PATCH 11/13] clk: Constify parent name arrays Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  1:02 ` [PATCH 12/13] clk: core: copy parent_names & return error codes Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-16 20:30   ` Sascha Hauer
2012-04-16 20:30     ` Sascha Hauer
2012-04-16 21:35     ` Turquette, Mike
2012-04-16 21:35       ` Turquette, Mike
2012-04-12  1:02 ` [PATCH 13/13] clk: basic: improve parent_names & return errors Mike Turquette
2012-04-12  1:02   ` Mike Turquette
2012-04-12  6:49   ` Shawn Guo
2012-04-12  6:49     ` Shawn Guo
2012-04-16 23:10     ` Turquette, Mike
2012-04-16 23:10       ` Turquette, Mike
2012-04-17  1:46       ` Shawn Guo
2012-04-17  1:46         ` Shawn Guo
2012-04-17  3:50         ` Turquette, Mike
2012-04-17  3:50           ` Turquette, Mike
2012-04-17  7:17           ` Shawn Guo
2012-04-17  7:17             ` Shawn Guo
2012-04-20 20:01             ` Saravana Kannan
2012-04-20 20:01               ` Saravana Kannan
2012-04-26  6:00             ` Saravana Kannan
2012-04-26  6:00               ` Saravana Kannan
2012-04-16 20:52   ` Sascha Hauer
2012-04-16 20:52     ` Sascha Hauer
2012-04-16 23:11     ` Turquette, Mike
2012-04-16 23:11       ` Turquette, Mike
2012-04-12  8:56 ` [PATCH 00/13] common clk framework misc fixes Sascha Hauer
2012-04-12  8:56   ` Sascha Hauer
2012-04-12 11:14 ` Arnd Bergmann
2012-04-12 11:14   ` Arnd Bergmann
2012-04-12 13:11   ` Shawn Guo
2012-04-12 13:11     ` Shawn Guo
2012-04-12 12:50 ` [PATCH 1/3] clk: always pass parent_rate into .round_rate Shawn Guo
2012-04-12 12:50   ` [PATCH 2/3] clk: pass parent_rate into .set_rate Shawn Guo
2012-04-18  1:05     ` Turquette, Mike
2012-04-12 12:50   ` [PATCH 3/3] clk: propagate round_rate for CLK_SET_RATE_PARENT case Shawn Guo
2012-04-18  1:07     ` Turquette, Mike
2012-04-18  1:05   ` Turquette, Mike [this message]
2012-05-02  9:51   ` [PATCH 1/3] clk: always pass parent_rate into .round_rate Sascha Hauer
2012-05-06 23:41     ` Turquette, Mike
2012-04-13  9:21 ` [PATCH 00/13] common clk framework misc fixes Mark Brown
2012-04-13  9:21   ` Mark Brown
2012-04-13 22:20   ` Turquette, Mike
2012-04-13 22:20     ` Turquette, Mike

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='CAJOA=zMytn8i69wHOvnwfks=Ze8wVwh+Q97cPcR5+o1MwmQHhg@mail.gmail.com' \
    --to=mturquette@ti.com \
    --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 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.