All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Anderson <dianders@chromium.org>
To: Thomas Abraham <ta.omasab@gmail.com>
Cc: cpufreq@vger.kernel.org,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"Mike Turquette" <mturquette@linaro.org>,
	"Shawn Guo" <shawn.guo@linaro.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	"Kukjin Kim" <kgene.kim@samsung.com>,
	"Tomasz Figa" <t.figa@samsung.com>,
	l.majewski@samsung.com, "Viresh Kumar" <viresh.kumar@linaro.org>,
	"Heiko Stübner" <heiko@sntech.de>,
	"Thomas P Abraham" <thomas.ab@samsung.com>
Subject: Re: [PATCH v4 3/8] clk: samsung: add infrastructure to register cpu clocks
Date: Thu, 15 May 2014 11:18:44 -0700	[thread overview]
Message-ID: <CAD=FV=XmVNwwZY_LM6Za-p7gg6CPh1mGj=BoWvG0Q-Cx9L_A9Q@mail.gmail.com> (raw)
In-Reply-To: <1400029876-5830-4-git-send-email-thomas.ab@samsung.com>

Thomas,

On Tue, May 13, 2014 at 6:11 PM, Thomas Abraham <ta.omasab@gmail.com> wrote:
> From: Thomas Abraham <thomas.ab@samsung.com>
> +static int exynos4210_armclk_pre_rate_change(struct clk_notifier_data *ndata,
> +                       struct exynos_cpuclk *armclk, void __iomem *base)
> +{
> +       struct exynos4210_armclk_data *armclk_data = armclk->data;
> +       unsigned long alt_prate = clk_get_rate(armclk->alt_parent);
> +       unsigned long alt_div, div0, div1, tdiv0, mux_reg;
> +       unsigned long cur_armclk_rate, timeout;
> +       unsigned long flags;
> +
> +       /* find out the divider values to use for clock data */
> +       while (armclk_data->prate != ndata->new_rate) {
> +               if (armclk_data->prate == 0)
> +                       return -EINVAL;
> +               armclk_data++;
> +       }
> +
> +       div0 = armclk_data->div0;
> +       div1 = armclk_data->div1;
> +       if (readl(base + SRC_CPU) & EXYNOS4210_MUX_HPM_MASK) {
> +               div1 = readl(base + DIV_CPU1) & EXYNOS4210_DIV1_HPM_MASK;
> +               div1 |= ((armclk_data->div1) & ~EXYNOS4210_DIV1_HPM_MASK);
> +       }
> +
> +       /*
> +        * if the new and old parent clock speed is less than the clock speed
> +        * of the alternate parent, then it should be ensured that at no point
> +        * the armclk speed is more than the old_prate until the dividers are
> +        * set.
> +        */
> +       tdiv0 = readl(base + DIV_CPU0);
> +       cur_armclk_rate = ndata->old_rate / EXYNOS4210_ARM_DIV1(tdiv0) /
> +                               EXYNOS4210_ARM_DIV2(tdiv0);
> +       if (alt_prate > cur_armclk_rate) {
> +               alt_div = _calc_div(alt_prate, cur_armclk_rate);
> +               _exynos4210_set_armclk_div(base, alt_div);
> +               div0 |= alt_div;

Don't you need to up the voltage here, too?  ...I haven't reviewed
this whole patch (so perhaps it's elsewhere in the patch or in the
series), but I stumbled upon this while trying to solve a different
problem and figured I'd check...

-Doug

WARNING: multiple messages have this Message-ID (diff)
From: dianders@chromium.org (Doug Anderson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/8] clk: samsung: add infrastructure to register cpu clocks
Date: Thu, 15 May 2014 11:18:44 -0700	[thread overview]
Message-ID: <CAD=FV=XmVNwwZY_LM6Za-p7gg6CPh1mGj=BoWvG0Q-Cx9L_A9Q@mail.gmail.com> (raw)
In-Reply-To: <1400029876-5830-4-git-send-email-thomas.ab@samsung.com>

Thomas,

On Tue, May 13, 2014 at 6:11 PM, Thomas Abraham <ta.omasab@gmail.com> wrote:
> From: Thomas Abraham <thomas.ab@samsung.com>
> +static int exynos4210_armclk_pre_rate_change(struct clk_notifier_data *ndata,
> +                       struct exynos_cpuclk *armclk, void __iomem *base)
> +{
> +       struct exynos4210_armclk_data *armclk_data = armclk->data;
> +       unsigned long alt_prate = clk_get_rate(armclk->alt_parent);
> +       unsigned long alt_div, div0, div1, tdiv0, mux_reg;
> +       unsigned long cur_armclk_rate, timeout;
> +       unsigned long flags;
> +
> +       /* find out the divider values to use for clock data */
> +       while (armclk_data->prate != ndata->new_rate) {
> +               if (armclk_data->prate == 0)
> +                       return -EINVAL;
> +               armclk_data++;
> +       }
> +
> +       div0 = armclk_data->div0;
> +       div1 = armclk_data->div1;
> +       if (readl(base + SRC_CPU) & EXYNOS4210_MUX_HPM_MASK) {
> +               div1 = readl(base + DIV_CPU1) & EXYNOS4210_DIV1_HPM_MASK;
> +               div1 |= ((armclk_data->div1) & ~EXYNOS4210_DIV1_HPM_MASK);
> +       }
> +
> +       /*
> +        * if the new and old parent clock speed is less than the clock speed
> +        * of the alternate parent, then it should be ensured that at no point
> +        * the armclk speed is more than the old_prate until the dividers are
> +        * set.
> +        */
> +       tdiv0 = readl(base + DIV_CPU0);
> +       cur_armclk_rate = ndata->old_rate / EXYNOS4210_ARM_DIV1(tdiv0) /
> +                               EXYNOS4210_ARM_DIV2(tdiv0);
> +       if (alt_prate > cur_armclk_rate) {
> +               alt_div = _calc_div(alt_prate, cur_armclk_rate);
> +               _exynos4210_set_armclk_div(base, alt_div);
> +               div0 |= alt_div;

Don't you need to up the voltage here, too?  ...I haven't reviewed
this whole patch (so perhaps it's elsewhere in the patch or in the
series), but I stumbled upon this while trying to solve a different
problem and figured I'd check...

-Doug

  reply	other threads:[~2014-05-15 18:18 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-14  1:11 [PATCH v4 0/8] cpufreq: use cpufreq-cpu0 driver for exynos based platforms Thomas Abraham
2014-05-14  1:11 ` Thomas Abraham
2014-05-14  1:11 ` Thomas Abraham
2014-05-14  1:11 ` [PATCH v4 1/8] cpufreq: cpufreq-cpu0: allow use of optional boost mode frequencies Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-14  3:46   ` Viresh Kumar
2014-05-14  3:46     ` Viresh Kumar
2014-05-14  6:17     ` Lukasz Majewski
2014-05-14  6:17       ` Lukasz Majewski
2014-05-14  6:20       ` Viresh Kumar
2014-05-14  6:20         ` Viresh Kumar
2014-05-14 13:43         ` Thomas Abraham
2014-05-14 13:43           ` Thomas Abraham
2014-05-14 13:50           ` Viresh Kumar
2014-05-14 13:50             ` Viresh Kumar
2014-05-14 14:18             ` Thomas Abraham
2014-05-14 14:18               ` Thomas Abraham
2014-05-14 14:20               ` Viresh Kumar
2014-05-14 14:20                 ` Viresh Kumar
2014-05-14  1:11 ` [PATCH v4 2/8] clk: samsung: change scope of samsung clock lock to global Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-14  3:50   ` Viresh Kumar
2014-05-14  3:50     ` Viresh Kumar
2014-05-14 13:26     ` Thomas Abraham
2014-05-14 13:26       ` Thomas Abraham
2014-05-16 12:30   ` Tomasz Figa
2014-05-16 12:30     ` Tomasz Figa
2014-05-14  1:11 ` [PATCH v4 3/8] clk: samsung: add infrastructure to register cpu clocks Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-15 18:18   ` Doug Anderson [this message]
2014-05-15 18:18     ` Doug Anderson
2014-05-15 19:17     ` Heiko Stübner
2014-05-15 19:17       ` Heiko Stübner
2014-05-15 19:36       ` Doug Anderson
2014-05-15 19:36         ` Doug Anderson
2014-05-15 19:36         ` Doug Anderson
2014-05-15 20:12         ` Heiko Stübner
2014-05-15 20:12           ` Heiko Stübner
2014-05-15 20:26           ` Doug Anderson
2014-05-15 20:26             ` Doug Anderson
2014-05-16  4:55             ` Thomas Abraham
2014-05-16  4:55               ` Thomas Abraham
2014-05-16 17:17   ` Tomasz Figa
2014-05-16 17:17     ` Tomasz Figa
2014-05-23 14:41     ` Thomas Abraham
2014-05-23 14:41       ` Thomas Abraham
2014-05-23 14:50       ` Tomasz Figa
2014-05-23 14:50         ` Tomasz Figa
2014-05-14  1:11 ` [PATCH v4 4/8] Documentation: devicetree: add cpu clock configuration data binding for Exynos4/5 Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-16 23:24   ` Tomasz Figa
2014-05-16 23:24     ` Tomasz Figa
2014-05-17  0:00     ` Tomasz Figa
2014-05-17  0:00       ` Tomasz Figa
2014-05-26  6:05     ` Thomas Abraham
2014-05-26  6:05       ` Thomas Abraham
2014-05-26 11:02       ` Tomasz Figa
2014-05-26 11:02         ` Tomasz Figa
2014-05-14  1:11 ` [PATCH v4 5/8] clk: exynos: use cpu-clock provider type to represent arm clock Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-14 21:37   ` Mike Turquette
2014-05-14 21:37     ` Mike Turquette
2014-05-15  7:48     ` Thomas Abraham
2014-05-15  7:48       ` Thomas Abraham
2014-05-15  8:10       ` Lukasz Majewski
2014-05-15  8:10         ` Lukasz Majewski
2014-05-15  9:59         ` Thomas Abraham
2014-05-15  9:59           ` Thomas Abraham
2014-05-16  5:14     ` Thomas Abraham
2014-05-16  5:14       ` Thomas Abraham
2014-05-16 23:57   ` Tomasz Figa
2014-05-16 23:57     ` Tomasz Figa
2014-05-14  1:11 ` [PATCH v4 6/8] ARM: dts: Exynos: add cpu nodes, opp and cpu clock configuration data Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-16 23:16   ` Tomasz Figa
2014-05-16 23:16     ` Tomasz Figa
2014-05-14  1:11 ` [PATCH v4 7/8] ARM: Exynos: switch to using generic cpufreq-cpu0 driver Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-14 12:50   ` Arnd Bergmann
2014-05-14 12:50     ` Arnd Bergmann
2014-05-14 13:05     ` Viresh Kumar
2014-05-14 13:05       ` Viresh Kumar
2014-05-14 13:11       ` Heiko Stübner
2014-05-14 13:11         ` Heiko Stübner
2014-05-14 13:14         ` Viresh Kumar
2014-05-14 13:14           ` Viresh Kumar
2014-05-14 13:14           ` Viresh Kumar
2014-05-14 13:18           ` Arnd Bergmann
2014-05-14 13:18             ` Arnd Bergmann
2014-05-14 13:45             ` Rob Herring
2014-05-14 13:45               ` Rob Herring
2014-05-14 13:45               ` Rob Herring
2014-05-14 14:33               ` Arnd Bergmann
2014-05-14 14:33                 ` Arnd Bergmann
2014-07-08  5:15                 ` Viresh Kumar
2014-07-08  5:15                   ` Viresh Kumar
2014-05-14 14:03         ` Thomas Abraham
2014-05-14 14:03           ` Thomas Abraham
2014-05-14 14:03           ` Thomas Abraham
2014-05-14 14:09           ` Sudeep Holla
2014-05-14 14:09             ` Sudeep Holla
2014-05-14 14:09             ` Sudeep Holla
2014-05-14 14:09     ` Thomas Abraham
2014-05-14 14:09       ` Thomas Abraham
2014-05-17  0:04   ` Tomasz Figa
2014-05-17  0:04     ` Tomasz Figa
2014-05-14  1:11 ` [PATCH v4 8/8] cpufreq: exynos: remove all exynos specific cpufreq driver support Thomas Abraham
2014-05-14  1:11   ` Thomas Abraham
2014-05-14  3:57   ` Viresh Kumar
2014-05-14  3:57     ` Viresh Kumar
2014-05-14  7:20   ` Lukasz Majewski
2014-05-14  7:20     ` Lukasz Majewski
2014-05-14 13:53     ` Thomas Abraham
2014-05-14 13:53       ` Thomas Abraham
2014-05-14 12:51 ` [PATCH v4 0/8] cpufreq: use cpufreq-cpu0 driver for exynos based platforms Arnd Bergmann
2014-05-14 12:51   ` Arnd Bergmann
2014-05-14 13:07   ` Viresh Kumar
2014-05-14 13:07     ` Viresh Kumar
2014-05-14 13:16     ` Arnd Bergmann
2014-05-14 13:16       ` Arnd Bergmann
2014-05-17  0:14 ` Tomasz Figa
2014-05-17  0:14   ` Tomasz Figa
2014-05-17  0:14   ` Tomasz Figa

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='CAD=FV=XmVNwwZY_LM6Za-p7gg6CPh1mGj=BoWvG0Q-Cx9L_A9Q@mail.gmail.com' \
    --to=dianders@chromium.org \
    --cc=cpufreq@vger.kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=heiko@sntech.de \
    --cc=kgene.kim@samsung.com \
    --cc=l.majewski@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=mturquette@linaro.org \
    --cc=rjw@rjwysocki.net \
    --cc=shawn.guo@linaro.org \
    --cc=t.figa@samsung.com \
    --cc=ta.omasab@gmail.com \
    --cc=thomas.ab@samsung.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.