Message ID | 1401913973-22536-1-git-send-email-Ed.Swarthout@freescale.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On 06/04/2014 02:32 PM, Ed Swarthout wrote: > 6712d2931933ada259b82f06c03a855b19937074 (cpufreq: > ppc-corenet-cpufreq: Fix __udivdi3 modpost error) used the remainder > from do_div instead of the quotient. Fix that and add one to ensure > minimum is met. > > Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com> > --- > drivers/cpufreq/ppc-corenet-cpufreq.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/cpufreq/ppc-corenet-cpufreq.c b/drivers/cpufreq/ppc-corenet-cpufreq.c > index 0af618a..3607070 100644 > --- a/drivers/cpufreq/ppc-corenet-cpufreq.c > +++ b/drivers/cpufreq/ppc-corenet-cpufreq.c > @@ -138,7 +138,7 @@ static int corenet_cpufreq_cpu_init(struct cpufreq_policy *policy) > struct cpufreq_frequency_table *table; > struct cpu_data *data; > unsigned int cpu = policy->cpu; > - u64 transition_latency_hz; > + u64 u64temp; > > np = of_get_cpu_node(cpu, NULL); > if (!np) > @@ -206,9 +206,10 @@ static int corenet_cpufreq_cpu_init(struct cpufreq_policy *policy) > for_each_cpu(i, per_cpu(cpu_mask, cpu)) > per_cpu(cpu_data, i) = data; > > - transition_latency_hz = 12ULL * NSEC_PER_SEC; > - policy->cpuinfo.transition_latency = > - do_div(transition_latency_hz, fsl_get_sys_freq()); > + /* Minimum transition latency is 12 platform clocks */ > + u64temp = 12ULL * NSEC_PER_SEC; > + do_div(u64temp, fsl_get_sys_freq()); > + policy->cpuinfo.transition_latency = u64temp + 1; > > of_node_put(np); > > Whoops, what was I thinking ? You should also add "Cc: stable@vger.kernel.org # 3.15+" since this patch will likely miss 3.15 final. Acked-by: Tim Gardner <tim.gardner@canonical.com>
diff --git a/drivers/cpufreq/ppc-corenet-cpufreq.c b/drivers/cpufreq/ppc-corenet-cpufreq.c index 0af618a..3607070 100644 --- a/drivers/cpufreq/ppc-corenet-cpufreq.c +++ b/drivers/cpufreq/ppc-corenet-cpufreq.c @@ -138,7 +138,7 @@ static int corenet_cpufreq_cpu_init(struct cpufreq_policy *policy) struct cpufreq_frequency_table *table; struct cpu_data *data; unsigned int cpu = policy->cpu; - u64 transition_latency_hz; + u64 u64temp; np = of_get_cpu_node(cpu, NULL); if (!np) @@ -206,9 +206,10 @@ static int corenet_cpufreq_cpu_init(struct cpufreq_policy *policy) for_each_cpu(i, per_cpu(cpu_mask, cpu)) per_cpu(cpu_data, i) = data; - transition_latency_hz = 12ULL * NSEC_PER_SEC; - policy->cpuinfo.transition_latency = - do_div(transition_latency_hz, fsl_get_sys_freq()); + /* Minimum transition latency is 12 platform clocks */ + u64temp = 12ULL * NSEC_PER_SEC; + do_div(u64temp, fsl_get_sys_freq()); + policy->cpuinfo.transition_latency = u64temp + 1; of_node_put(np);
6712d2931933ada259b82f06c03a855b19937074 (cpufreq: ppc-corenet-cpufreq: Fix __udivdi3 modpost error) used the remainder from do_div instead of the quotient. Fix that and add one to ensure minimum is met. Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com> --- drivers/cpufreq/ppc-corenet-cpufreq.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)