cpufreq: SPEAr: clk_round_rate() can return a zero upon error
authorPaul Walmsley <pwalmsley@nvidia.com>
Tue, 26 Nov 2013 02:04:34 +0000 (18:04 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 6 Dec 2013 22:19:19 +0000 (23:19 +0100)
Treat both negative and zero return values from clk_round_rate()
as errors.  This is needed since subsequent patches will convert
clk_round_rate()'s return value to be an unsigned type, rather
than a signed type, since some clock sources can generate rates
higher than (2^31)-1 Hz.

Eventually, when calling clk_round_rate(), only a return value of
zero will be considered a error.  All other values will be
considered valid rates.  The comparison against values less than
0 is kept to preserve the correct behavior in the meantime.

Signed-off-by: Paul Walmsley <pwalmsley@nvidia.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/spear-cpufreq.c

index d02ccd19c9c4f20e4b5a3cfdcf1035b0c15c97fd..45ea4c094542d677bf2edd83f642b0173ed90541 100644 (file)
@@ -138,7 +138,7 @@ static int spear_cpufreq_target(struct cpufreq_policy *policy,
        }
 
        newfreq = clk_round_rate(srcclk, newfreq * mult);
-       if (newfreq < 0) {
+       if (newfreq <= 0) {
                pr_err("clk_round_rate failed for cpu src clock\n");
                return newfreq;
        }