aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sh/Kconfig3
-rw-r--r--arch/sh/include/asm/processor.h1
-rw-r--r--arch/sh/kernel/idle.c20
3 files changed, 0 insertions, 24 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 244cfd0dbb7b..04a8cb4700af 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -153,9 +153,6 @@ config ARCH_NO_VIRT_TO_BUS
153config ARCH_HAS_DEFAULT_IDLE 153config ARCH_HAS_DEFAULT_IDLE
154 def_bool y 154 def_bool y
155 155
156config ARCH_HAS_CPU_IDLE_WAIT
157 def_bool y
158
159config NO_IOPORT 156config NO_IOPORT
160 def_bool !PCI 157 def_bool !PCI
161 depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN 158 depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN
diff --git a/arch/sh/include/asm/processor.h b/arch/sh/include/asm/processor.h
index 6d87912415a7..6dbc1be28a0f 100644
--- a/arch/sh/include/asm/processor.h
+++ b/arch/sh/include/asm/processor.h
@@ -98,7 +98,6 @@ extern struct sh_cpuinfo cpu_data[];
98#define cpu_relax() barrier() 98#define cpu_relax() barrier()
99 99
100void default_idle(void); 100void default_idle(void);
101void cpu_idle_wait(void);
102void stop_this_cpu(void *); 101void stop_this_cpu(void *);
103 102
104/* Forward decl */ 103/* Forward decl */
diff --git a/arch/sh/kernel/idle.c b/arch/sh/kernel/idle.c
index ee226e20c20c..0c910163caa3 100644
--- a/arch/sh/kernel/idle.c
+++ b/arch/sh/kernel/idle.c
@@ -132,10 +132,6 @@ void __init select_idle_routine(void)
132 pm_idle = poll_idle; 132 pm_idle = poll_idle;
133} 133}
134 134
135static void do_nothing(void *unused)
136{
137}
138
139void stop_this_cpu(void *unused) 135void stop_this_cpu(void *unused)
140{ 136{
141 local_irq_disable(); 137 local_irq_disable();
@@ -144,19 +140,3 @@ void stop_this_cpu(void *unused)
144 for (;;) 140 for (;;)
145 cpu_sleep(); 141 cpu_sleep();
146} 142}
147
148/*
149 * cpu_idle_wait - Used to ensure that all the CPUs discard old value of
150 * pm_idle and update to new pm_idle value. Required while changing pm_idle
151 * handler on SMP systems.
152 *
153 * Caller must have changed pm_idle to the new value before the call. Old
154 * pm_idle value will not be used by any CPU after the return of this function.
155 */
156void cpu_idle_wait(void)
157{
158 smp_mb();
159 /* kick all the CPUs so that they exit out of pm_idle */
160 smp_call_function(do_nothing, NULL, 1);
161}
162EXPORT_SYMBOL_GPL(cpu_idle_wait);