ANDROID: idle_notifier: Add generic idle notifiers

AOSP Change-ID: Idf29cda15be151f494ff245933c12462643388d5
moved x86_64 idle notifiers as generic so that they can
be used in interactive governor.

Upstream change 8e7a7ee9dd ("x86/idle: Remove idle_notifier")
removed x86_64 idle notifiers altogether. This patch add
generic idle notifiers again.

Change-Id: Iffb48a1ea0348d9ddad93df697e4743a5531fe73
Fixes: android-4.9 commit bfd2a547fc17 ("ANDROID: ARM: Call idle notifiers")
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Git-Commit: d82a8035d09bcfcac238b80ad97335167665a7c3
Git-Repo: https://android-git.linaro.org/git/kernel/linaro-android.git
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
This commit is contained in:
Amit Pundir
2017-02-23 16:02:45 -08:00
committed by Amir Vajid
parent 154900b51b
commit e1a9e7daea
2 changed files with 27 additions and 0 deletions

View File

@@ -221,4 +221,11 @@ static inline int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval) { return 0;
extern bool cpu_mitigations_off(void); extern bool cpu_mitigations_off(void);
extern bool cpu_mitigations_auto_nosmt(void); extern bool cpu_mitigations_auto_nosmt(void);
#define IDLE_START 1
#define IDLE_END 2
void idle_notifier_register(struct notifier_block *n);
void idle_notifier_unregister(struct notifier_block *n);
void idle_notifier_call_chain(unsigned long val);
#endif /* _LINUX_CPU_H_ */ #endif /* _LINUX_CPU_H_ */

View File

@@ -2498,3 +2498,23 @@ bool cpu_mitigations_auto_nosmt(void)
return cpu_mitigations == CPU_MITIGATIONS_AUTO_NOSMT; return cpu_mitigations == CPU_MITIGATIONS_AUTO_NOSMT;
} }
EXPORT_SYMBOL_GPL(cpu_mitigations_auto_nosmt); EXPORT_SYMBOL_GPL(cpu_mitigations_auto_nosmt);
static ATOMIC_NOTIFIER_HEAD(idle_notifier);
void idle_notifier_register(struct notifier_block *n)
{
atomic_notifier_chain_register(&idle_notifier, n);
}
EXPORT_SYMBOL_GPL(idle_notifier_register);
void idle_notifier_unregister(struct notifier_block *n)
{
atomic_notifier_chain_unregister(&idle_notifier, n);
}
EXPORT_SYMBOL_GPL(idle_notifier_unregister);
void idle_notifier_call_chain(unsigned long val)
{
atomic_notifier_call_chain(&idle_notifier, val, NULL);
}
EXPORT_SYMBOL_GPL(idle_notifier_call_chain);