diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2018-01-30 00:42:37 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-02-08 04:21:39 -0500 |
commit | ffd81dcfef85a33729f90e4acd2f61a68e56b993 (patch) | |
tree | 4160debd7778d436e027edf810e438266953dc11 /drivers/cpufreq/freq_table.c | |
parent | 70f6bf2a3b7e40c3f802b0ea837762a8bc6c1430 (diff) |
cpufreq: Add and use cpufreq_for_each_{valid_,}entry_idx()
Pointer subtraction is slow and tedious. Therefore, replace all instances
where cpufreq_for_each_{valid_,}entry loops contained such substractions
with an iteration macro providing an index to the frequency_table entry.
Suggested-by: Al Viro <viro@ZenIV.linux.org.uk>
Link: http://lkml.kernel.org/r/20180120020237.GM13338@ZenIV.linux.org.uk
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpufreq/freq_table.c')
-rw-r--r-- | drivers/cpufreq/freq_table.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c index 3bbbf9e6960c..6d007f824ca7 100644 --- a/drivers/cpufreq/freq_table.c +++ b/drivers/cpufreq/freq_table.c | |||
@@ -143,10 +143,9 @@ int cpufreq_table_index_unsorted(struct cpufreq_policy *policy, | |||
143 | break; | 143 | break; |
144 | } | 144 | } |
145 | 145 | ||
146 | cpufreq_for_each_valid_entry(pos, table) { | 146 | cpufreq_for_each_valid_entry_idx(pos, table, i) { |
147 | freq = pos->frequency; | 147 | freq = pos->frequency; |
148 | 148 | ||
149 | i = pos - table; | ||
150 | if ((freq < policy->min) || (freq > policy->max)) | 149 | if ((freq < policy->min) || (freq > policy->max)) |
151 | continue; | 150 | continue; |
152 | if (freq == target_freq) { | 151 | if (freq == target_freq) { |
@@ -211,15 +210,16 @@ int cpufreq_frequency_table_get_index(struct cpufreq_policy *policy, | |||
211 | unsigned int freq) | 210 | unsigned int freq) |
212 | { | 211 | { |
213 | struct cpufreq_frequency_table *pos, *table = policy->freq_table; | 212 | struct cpufreq_frequency_table *pos, *table = policy->freq_table; |
213 | int idx; | ||
214 | 214 | ||
215 | if (unlikely(!table)) { | 215 | if (unlikely(!table)) { |
216 | pr_debug("%s: Unable to find frequency table\n", __func__); | 216 | pr_debug("%s: Unable to find frequency table\n", __func__); |
217 | return -ENOENT; | 217 | return -ENOENT; |
218 | } | 218 | } |
219 | 219 | ||
220 | cpufreq_for_each_valid_entry(pos, table) | 220 | cpufreq_for_each_valid_entry_idx(pos, table, idx) |
221 | if (pos->frequency == freq) | 221 | if (pos->frequency == freq) |
222 | return pos - table; | 222 | return idx; |
223 | 223 | ||
224 | return -EINVAL; | 224 | return -EINVAL; |
225 | } | 225 | } |