aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/freq_table.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2018-01-30 00:42:37 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2018-02-08 04:21:39 -0500
commitffd81dcfef85a33729f90e4acd2f61a68e56b993 (patch)
tree4160debd7778d436e027edf810e438266953dc11 /drivers/cpufreq/freq_table.c
parent70f6bf2a3b7e40c3f802b0ea837762a8bc6c1430 (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.c8
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}