diff options
Diffstat (limited to 'arch/blackfin/kernel/process.c')
| -rw-r--r-- | arch/blackfin/kernel/process.c | 41 | 
1 files changed, 6 insertions, 35 deletions
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 3e16ad9b0a9..4aa5545c4fd 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c @@ -39,12 +39,6 @@ int nr_l1stack_tasks;  void *l1_stack_base;  unsigned long l1_stack_len; -/* - * Powermanagement idle function, if any.. - */ -void (*pm_idle)(void) = NULL; -EXPORT_SYMBOL(pm_idle); -  void (*pm_power_off)(void) = NULL;  EXPORT_SYMBOL(pm_power_off); @@ -52,15 +46,14 @@ EXPORT_SYMBOL(pm_power_off);   * The idle loop on BFIN   */  #ifdef CONFIG_IDLE_L1 -static void default_idle(void)__attribute__((l1_text)); -void cpu_idle(void)__attribute__((l1_text)); +void arch_cpu_idle(void)__attribute__((l1_text));  #endif  /*   * This is our default idle handler.  We need to disable   * interrupts here to ensure we don't miss a wakeup call.   */ -static void default_idle(void) +void arch_cpu_idle(void)  {  #ifdef CONFIG_IPIPE  	ipipe_suspend_domain(); @@ -72,34 +65,12 @@ static void default_idle(void)  	hard_local_irq_enable();  } -/* - * The idle thread.  We try to conserve power, while trying to keep - * overall latency low.  The architecture specific idle is passed - * a value to indicate the level of "idleness" of the system. - */ -void cpu_idle(void) -{ -	/* endless idle loop with no priority at all */ -	while (1) { -		void (*idle)(void) = pm_idle; -  #ifdef CONFIG_HOTPLUG_CPU -		if (cpu_is_offline(smp_processor_id())) -			cpu_die(); -#endif -		if (!idle) -			idle = default_idle; -		tick_nohz_idle_enter(); -		rcu_idle_enter(); -		while (!need_resched()) -			idle(); -		rcu_idle_exit(); -		tick_nohz_idle_exit(); -		preempt_enable_no_resched(); -		schedule(); -		preempt_disable(); -	} +void arch_cpu_idle_dead(void) +{ +	cpu_die();  } +#endif  /*   * Do necessary setup to start up a newly executed thread.  |