On Thu, Mar 3, 2016 at 7:00 AM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > On 02-03-16, 03:12, Rafael J. Wysocki wrote: >> Index: linux-pm/drivers/cpufreq/cpufreq.c >> =================================================================== >> --- linux-pm.orig/drivers/cpufreq/cpufreq.c >> +++ linux-pm/drivers/cpufreq/cpufreq.c >> @@ -1772,6 +1772,39 @@ EXPORT_SYMBOL(cpufreq_unregister_notifie >> * GOVERNORS * >> *********************************************************************/ >> >> +/** >> + * cpufreq_driver_fast_switch - Carry out a fast CPU frequency switch. >> + * @policy: cpufreq policy to switch the frequency for. >> + * @target_freq: New frequency to set (may be approximate). >> + * @relation: Relation to use for frequency selection. >> + * >> + * Carry out a fast frequency switch from interrupt context. >> + * >> + * This function must not be called if policy->fast_switch_possible is unset. >> + * >> + * Governors calling this function must guarantee that it will never be invoked >> + * twice in parallel for the same policy and that it will never be called in >> + * parallel with either ->target() or ->target_index() for the same policy. >> + * >> + * If CPUFREQ_ENTRY_INVALID is returned by the driver's ->fast_switch() >> + * callback, the hardware configuration must be preserved. >> + */ >> +void cpufreq_driver_fast_switch(struct cpufreq_policy *policy, >> + unsigned int target_freq, unsigned int relation) >> +{ >> + unsigned int freq; >> + >> + if (target_freq == policy->cur) > > Maybe an unlikely() here ? > >> + return; >> + >> + freq = cpufreq_driver->fast_switch(policy, target_freq, relation); >> + if (freq != CPUFREQ_ENTRY_INVALID) { >> + policy->cur = freq; > > Hmm.. What will happen to the code relying on the cpufreq-notifiers > now ? It will have a problem. For that code it's like the CPU changing the frequency and not telling it (which is not unusual for that matter). Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html