|
@@ -320,6 +320,20 @@ void cpufreq_notify_transition(struct cpufreq_policy *policy,
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(cpufreq_notify_transition);
|
|
|
|
|
|
+/* Do post notifications when there are chances that transition has failed */
|
|
|
+void cpufreq_notify_post_transition(struct cpufreq_policy *policy,
|
|
|
+ struct cpufreq_freqs *freqs, int transition_failed)
|
|
|
+{
|
|
|
+ cpufreq_notify_transition(policy, freqs, CPUFREQ_POSTCHANGE);
|
|
|
+ if (!transition_failed)
|
|
|
+ return;
|
|
|
+
|
|
|
+ swap(freqs->old, freqs->new);
|
|
|
+ cpufreq_notify_transition(policy, freqs, CPUFREQ_PRECHANGE);
|
|
|
+ cpufreq_notify_transition(policy, freqs, CPUFREQ_POSTCHANGE);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(cpufreq_notify_post_transition);
|
|
|
+
|
|
|
|
|
|
/*********************************************************************
|
|
|
* SYSFS INTERFACE *
|