diff options
| -rw-r--r-- | kernel/sched/cpufreq_schedutil.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 69571ee6a175..a07f17a5f38f 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c | |||
| @@ -84,13 +84,18 @@ static bool sugov_should_update_freq(struct sugov_policy *sg_policy, u64 time) | |||
| 84 | * | 84 | * |
| 85 | * However, drivers cannot in general deal with cross-cpu | 85 | * However, drivers cannot in general deal with cross-cpu |
| 86 | * requests, so while get_next_freq() will work, our | 86 | * requests, so while get_next_freq() will work, our |
| 87 | * sugov_update_commit() call may not. | 87 | * sugov_update_commit() call may not for the fast switching platforms. |
| 88 | * | 88 | * |
| 89 | * Hence stop here for remote requests if they aren't supported | 89 | * Hence stop here for remote requests if they aren't supported |
| 90 | * by the hardware, as calculating the frequency is pointless if | 90 | * by the hardware, as calculating the frequency is pointless if |
| 91 | * we cannot in fact act on it. | 91 | * we cannot in fact act on it. |
| 92 | * | ||
| 93 | * For the slow switching platforms, the kthread is always scheduled on | ||
| 94 | * the right set of CPUs and any CPU can find the next frequency and | ||
| 95 | * schedule the kthread. | ||
| 92 | */ | 96 | */ |
| 93 | if (!cpufreq_can_do_remote_dvfs(sg_policy->policy)) | 97 | if (sg_policy->policy->fast_switch_enabled && |
| 98 | !cpufreq_can_do_remote_dvfs(sg_policy->policy)) | ||
| 94 | return false; | 99 | return false; |
| 95 | 100 | ||
| 96 | if (sg_policy->work_in_progress) | 101 | if (sg_policy->work_in_progress) |
