|
@@ -33,6 +33,7 @@
|
|
#include <linux/kallsyms.h>
|
|
#include <linux/kallsyms.h>
|
|
#include <linux/init.h>
|
|
#include <linux/init.h>
|
|
#include <linux/cpu.h>
|
|
#include <linux/cpu.h>
|
|
|
|
+#include <linux/cpuidle.h>
|
|
#include <linux/elfcore.h>
|
|
#include <linux/elfcore.h>
|
|
#include <linux/pm.h>
|
|
#include <linux/pm.h>
|
|
#include <linux/tick.h>
|
|
#include <linux/tick.h>
|
|
@@ -98,8 +99,10 @@ void arch_cpu_idle(void)
|
|
* This should do all the clock switching and wait for interrupt
|
|
* This should do all the clock switching and wait for interrupt
|
|
* tricks
|
|
* tricks
|
|
*/
|
|
*/
|
|
- cpu_do_idle();
|
|
|
|
- local_irq_enable();
|
|
|
|
|
|
+ if (cpuidle_idle_call()) {
|
|
|
|
+ cpu_do_idle();
|
|
|
|
+ local_irq_enable();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
#ifdef CONFIG_HOTPLUG_CPU
|