--- ba66160ea59712e3e1c43df933eb4e21be609206 +++ 3920f573e1391fc8b371e1181fd2d2e9f584a7ad @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -1611,6 +1612,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; }