|
@@ -93,14 +93,13 @@ static void sugov_update_commit(struct sugov_policy *sg_policy, u64 time,
|
|
|
{
|
|
|
struct cpufreq_policy *policy = sg_policy->policy;
|
|
|
|
|
|
- sg_policy->last_freq_update_time = time;
|
|
|
-
|
|
|
if (policy->fast_switch_enabled) {
|
|
|
if (sg_policy->next_freq == next_freq) {
|
|
|
trace_cpu_frequency(policy->cur, smp_processor_id());
|
|
|
return;
|
|
|
}
|
|
|
sg_policy->next_freq = next_freq;
|
|
|
+ sg_policy->last_freq_update_time = time;
|
|
|
next_freq = cpufreq_driver_fast_switch(policy, next_freq);
|
|
|
if (next_freq == CPUFREQ_ENTRY_INVALID)
|
|
|
return;
|
|
@@ -109,6 +108,7 @@ static void sugov_update_commit(struct sugov_policy *sg_policy, u64 time,
|
|
|
trace_cpu_frequency(next_freq, smp_processor_id());
|
|
|
} else if (sg_policy->next_freq != next_freq) {
|
|
|
sg_policy->next_freq = next_freq;
|
|
|
+ sg_policy->last_freq_update_time = time;
|
|
|
sg_policy->work_in_progress = true;
|
|
|
irq_work_queue(&sg_policy->irq_work);
|
|
|
}
|