A call to cpufreq_driver_resolve_freq will cache the mapping from
the desired target frequency to the frequency table index. If there
is a mapping for the desired target frequency then use it instead of
looking up the mapping again.

Signed-off-by: Steve Muckle <smuc...@linaro.org>
---
 drivers/cpufreq/acpi-cpufreq.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
index 11c9a078e0fd..297e9128fe9f 100644
--- a/drivers/cpufreq/acpi-cpufreq.c
+++ b/drivers/cpufreq/acpi-cpufreq.c
@@ -473,7 +473,10 @@ unsigned int acpi_cpufreq_fast_switch(struct 
cpufreq_policy *policy,
        /*
         * Find the closest frequency above target_freq.
         */
-       index = cpufreq_table_find_index_dl(policy, target_freq);
+       if (policy->cached_target_freq == target_freq)
+               index = policy->cached_resolved_idx;
+       else
+               index = cpufreq_table_find_index_dl(policy, target_freq);
 
        entry = &policy->freq_table[index];
        next_freq = entry->frequency;
-- 
2.7.3

Reply via email to