X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fcpufreq%2Fcppc_cpufreq.c;h=4852d9efe74e7c470169b25babbb3355e8a5a0b6;hb=ef98988ba369da88bab8a4d457407e71bbe160fa;hp=1b2f28f69a8142fce5edcd02c2f85f2e4f0c4a72;hpb=d4e65476bc68dbc9231b3c772b71f1576579b6fb;p=cascardo%2Flinux.git diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c index 1b2f28f69a81..4852d9efe74e 100644 --- a/drivers/cpufreq/cppc_cpufreq.c +++ b/drivers/cpufreq/cppc_cpufreq.c @@ -80,11 +80,17 @@ static int cppc_cpufreq_set_target(struct cpufreq_policy *policy, { struct cppc_cpudata *cpu; struct cpufreq_freqs freqs; + u32 desired_perf; int ret = 0; cpu = all_cpu_data[policy->cpu]; - cpu->perf_ctrls.desired_perf = (u64)target_freq * policy->max / cppc_dmi_max_khz; + desired_perf = (u64)target_freq * cpu->perf_caps.highest_perf / cppc_dmi_max_khz; + /* Return if it is exactly the same perf */ + if (desired_perf == cpu->perf_ctrls.desired_perf) + return ret; + + cpu->perf_ctrls.desired_perf = desired_perf; freqs.old = policy->cur; freqs.new = target_freq;