aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/Kconfig3
-rw-r--r--drivers/cpuidle/cpuidle.c2
-rw-r--r--include/linux/cpuidle.h13
3 files changed, 1 insertions, 17 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 3954ae96b0c7..fd4265007053 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -98,9 +98,6 @@ config ARCH_HAS_ILOG2_U32
98config ARCH_HAS_ILOG2_U64 98config ARCH_HAS_ILOG2_U64
99 def_bool n 99 def_bool n
100 100
101config ARCH_HAS_CPU_IDLE_WAIT
102 def_bool y
103
104config GENERIC_CALIBRATE_DELAY 101config GENERIC_CALIBRATE_DELAY
105 def_bool y 102 def_bool y
106 103
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index d868d737742f..2c4b2d47973e 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -83,7 +83,7 @@ void cpuidle_uninstall_idle_handler(void)
83{ 83{
84 if (enabled_devices && (pm_idle != pm_idle_old)) { 84 if (enabled_devices && (pm_idle != pm_idle_old)) {
85 pm_idle = pm_idle_old; 85 pm_idle = pm_idle_old;
86 cpuidle_kick_cpus(); 86 cpu_idle_wait();
87 } 87 }
88} 88}
89 89
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index c8eb8c71809e..385d45b616db 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -73,19 +73,6 @@ cpuidle_set_statedata(struct cpuidle_state *state, void *data)
73 state->driver_data = data; 73 state->driver_data = data;
74} 74}
75 75
76#ifdef CONFIG_SMP
77#ifdef CONFIG_ARCH_HAS_CPU_IDLE_WAIT
78static inline void cpuidle_kick_cpus(void)
79{
80 cpu_idle_wait();
81}
82#else /* !CONFIG_ARCH_HAS_CPU_IDLE_WAIT */
83#error "Arch needs cpu_idle_wait() equivalent here"
84#endif /* !CONFIG_ARCH_HAS_CPU_IDLE_WAIT */
85#else /* !CONFIG_SMP */
86static inline void cpuidle_kick_cpus(void) {}
87#endif /* !CONFIG_SMP */
88
89struct cpuidle_state_kobj { 76struct cpuidle_state_kobj {
90 struct cpuidle_state *state; 77 struct cpuidle_state *state;
91 struct completion kobj_unregister; 78 struct completion kobj_unregister;