|
@@ -36,26 +36,12 @@
|
|
|
static int arm_enter_idle_state(struct cpuidle_device *dev,
|
|
|
struct cpuidle_driver *drv, int idx)
|
|
|
{
|
|
|
- int ret;
|
|
|
-
|
|
|
- if (!idx) {
|
|
|
- cpu_do_idle();
|
|
|
- return idx;
|
|
|
- }
|
|
|
-
|
|
|
- ret = cpu_pm_enter();
|
|
|
- if (!ret) {
|
|
|
- /*
|
|
|
- * Pass idle state index to cpu_suspend which in turn will
|
|
|
- * call the CPU ops suspend protocol with idle index as a
|
|
|
- * parameter.
|
|
|
- */
|
|
|
- ret = arm_cpuidle_suspend(idx);
|
|
|
-
|
|
|
- cpu_pm_exit();
|
|
|
- }
|
|
|
-
|
|
|
- return ret ? -1 : idx;
|
|
|
+ /*
|
|
|
+ * Pass idle state index to arm_cpuidle_suspend which in turn
|
|
|
+ * will call the CPU ops suspend protocol with idle index as a
|
|
|
+ * parameter.
|
|
|
+ */
|
|
|
+ return CPU_PM_CPU_IDLE_ENTER(arm_cpuidle_suspend, idx);
|
|
|
}
|
|
|
|
|
|
static struct cpuidle_driver arm_idle_driver = {
|