|
@@ -229,9 +229,20 @@ static int cpufreq_thermal_notifier(struct notifier_block *nb,
|
|
|
if (!cpumask_test_cpu(policy->cpu, &cpufreq_dev->allowed_cpus))
|
|
|
continue;
|
|
|
|
|
|
+ /*
|
|
|
+ * policy->max is the maximum allowed frequency defined by user
|
|
|
+ * and clipped_freq is the maximum that thermal constraints
|
|
|
+ * allow.
|
|
|
+ *
|
|
|
+ * If clipped_freq is lower than policy->max, then we need to
|
|
|
+ * readjust policy->max.
|
|
|
+ *
|
|
|
+ * But, if clipped_freq is greater than policy->max, we don't
|
|
|
+ * need to do anything.
|
|
|
+ */
|
|
|
clipped_freq = cpufreq_dev->clipped_freq;
|
|
|
|
|
|
- if (policy->max != clipped_freq)
|
|
|
+ if (policy->max > clipped_freq)
|
|
|
cpufreq_verify_within_limits(policy, 0, clipped_freq);
|
|
|
break;
|
|
|
}
|