lkml.org 
[lkml]   [2013]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 19/60] cpufreq: loongson2: fix regression related to clock management
    Date
    3.10-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Aaro Koskinen <aaro.koskinen@iki.fi>

    commit f54fe64d14dff3df6d45a48115d248a82557811f upstream.

    Commit 42913c799 (MIPS: Loongson2: Use clk API instead of direct
    dereferences) broke the cpufreq functionality on Loongson2 boards:
    clk_set_rate() is called before the CPU frequency table is
    initialized, and therefore will always fail.

    Fix by moving the clk_set_rate() after the table initialization.
    Tested on Lemote FuLoong mini-PC.

    Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/cpufreq/loongson2_cpufreq.c | 11 ++++++-----
    1 file changed, 6 insertions(+), 5 deletions(-)

    --- a/drivers/cpufreq/loongson2_cpufreq.c
    +++ b/drivers/cpufreq/loongson2_cpufreq.c
    @@ -118,11 +118,6 @@ static int loongson2_cpufreq_cpu_init(st
    clk_put(cpuclk);
    return -EINVAL;
    }
    - ret = clk_set_rate(cpuclk, rate);
    - if (ret) {
    - clk_put(cpuclk);
    - return ret;
    - }

    /* clock table init */
    for (i = 2;
    @@ -130,6 +125,12 @@ static int loongson2_cpufreq_cpu_init(st
    i++)
    loongson2_clockmod_table[i].frequency = (rate * i) / 8;

    + ret = clk_set_rate(cpuclk, rate);
    + if (ret) {
    + clk_put(cpuclk);
    + return ret;
    + }
    +
    policy->cur = loongson2_cpufreq_get(policy->cpu);

    cpufreq_frequency_table_get_attr(&loongson2_clockmod_table[0],



    \
     
     \ /
      Last update: 2013-08-13 09:21    [W:4.101 / U:0.820 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site