Merge branches 'pm-cpuidle', 'pm-opp' and 'pm-avs'
[cascardo/linux.git] / drivers / cpuidle / cpuidle-arm.c
index 1855b9e..f440d38 100644 (file)
 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 = {