--- 124da3bb90f5380c2837624255effd93988d8439 +++ 311f3c7ac73c2d050b29e37d3a63a03f6be34614 @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -1449,6 +1450,12 @@ int __cpufreq_driver_target(struct cpufr target_freq, relation); if (cpu_online(policy->cpu) && cpufreq_driver->target) retval = cpufreq_driver->target(policy, target_freq, relation); + if (likely(retval != -EINVAL)) { + if (target_freq == policy->max) + cpu_nonscaling(policy->cpu); + else + cpu_scaling(policy->cpu); + } return retval; }