| From 160eb115968fb6d59993e8c5d196cca87268eae0 Mon Sep 17 00:00:00 2001 |
| From: Stratos Karafotis <stratosk@semaphore.gr> |
| Date: Wed, 7 May 2014 19:33:33 +0300 |
| Subject: cpufreq: Fix build error on some platforms that use |
| cpufreq_for_each_* |
| |
| On platforms that use cpufreq_for_each_* macros, build fails if |
| CONFIG_CPU_FREQ=n, e.g. ARM/shmobile/koelsch/non-multiplatform: |
| |
| drivers/built-in.o: In function `clk_round_parent': |
| clkdev.c:(.text+0xcf168): undefined reference to `cpufreq_next_valid' |
| drivers/built-in.o: In function `clk_rate_table_find': |
| clkdev.c:(.text+0xcf820): undefined reference to `cpufreq_next_valid' |
| make[3]: *** [vmlinux] Error 1 |
| |
| Fix this making cpufreq_next_valid function inline and move it to |
| cpufreq.h. |
| |
| Fixes: 27e289dce297 (cpufreq: Introduce macros for cpufreq_frequency_table iteration) |
| Reported-and-tested-by: Geert Uytterhoeven <geert@linux-m68k.org> |
| Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr> |
| Acked-by: Viresh Kumar <viresh.kumar@linaro.org> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| (cherry picked from commit 5eeaf1f1897372590105f155c6a7110b3fa36aef) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| |
| Conflicts: |
| include/linux/cpufreq.h |
| --- |
| drivers/cpufreq/cpufreq.c | 11 ----------- |
| include/linux/cpufreq.h | 10 +++++++++- |
| 2 files changed, 9 insertions(+), 12 deletions(-) |
| |
| diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c |
| index e9ab2efcc37f..dc1447dc173e 100644 |
| --- a/drivers/cpufreq/cpufreq.c |
| +++ b/drivers/cpufreq/cpufreq.c |
| @@ -230,17 +230,6 @@ void cpufreq_cpu_put(struct cpufreq_policy *policy) |
| } |
| EXPORT_SYMBOL_GPL(cpufreq_cpu_put); |
| |
| -bool cpufreq_next_valid(struct cpufreq_frequency_table **pos) |
| -{ |
| - while ((*pos)->frequency != CPUFREQ_TABLE_END) |
| - if ((*pos)->frequency != CPUFREQ_ENTRY_INVALID) |
| - return true; |
| - else |
| - (*pos)++; |
| - return false; |
| -} |
| -EXPORT_SYMBOL_GPL(cpufreq_next_valid); |
| - |
| /********************************************************************* |
| * EXTERNALLY AFFECTING FREQUENCY CHANGES * |
| *********************************************************************/ |
| diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h |
| index e8d7b6b7e3b7..c7b85eeaf4f1 100644 |
| --- a/include/linux/cpufreq.h |
| +++ b/include/linux/cpufreq.h |
| @@ -446,7 +446,15 @@ struct cpufreq_frequency_table { |
| * order */ |
| }; |
| |
| -bool cpufreq_next_valid(struct cpufreq_frequency_table **pos); |
| +static inline bool cpufreq_next_valid(struct cpufreq_frequency_table **pos) |
| +{ |
| + while ((*pos)->frequency != CPUFREQ_TABLE_END) |
| + if ((*pos)->frequency != CPUFREQ_ENTRY_INVALID) |
| + return true; |
| + else |
| + (*pos)++; |
| + return false; |
| +} |
| |
| /* |
| * cpufreq_for_each_entry - iterate over a cpufreq_frequency_table |
| -- |
| 2.1.2 |
| |