|
@@ -1470,12 +1470,19 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy,
|
|
|
unsigned int relation)
|
|
|
{
|
|
|
int retval = -EINVAL;
|
|
|
+ unsigned int old_target_freq = target_freq;
|
|
|
|
|
|
if (cpufreq_disabled())
|
|
|
return -ENODEV;
|
|
|
|
|
|
- pr_debug("target for CPU %u: %u kHz, relation %u\n", policy->cpu,
|
|
|
- target_freq, relation);
|
|
|
+ /* Make sure that target_freq is within supported range */
|
|
|
+ if (target_freq > policy->max)
|
|
|
+ target_freq = policy->max;
|
|
|
+ if (target_freq < policy->min)
|
|
|
+ target_freq = policy->min;
|
|
|
+
|
|
|
+ pr_debug("target for CPU %u: %u kHz, relation %u, requested %u kHz\n",
|
|
|
+ policy->cpu, target_freq, relation, old_target_freq);
|
|
|
|
|
|
if (target_freq == policy->cur)
|
|
|
return 0;
|