]> Pileus Git - ~andy/linux/blobdiff - arch/arm/mach-omap2/cpuidle44xx.c
Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[~andy/linux] / arch / arm / mach-omap2 / cpuidle44xx.c
index 5a286b56205ebc8c1a301e967f0359b6a6b6c7e0..c443f2e97e103702531c79b70dccebc11a85218d 100644 (file)
@@ -71,10 +71,7 @@ static int omap_enter_idle_simple(struct cpuidle_device *dev,
                        struct cpuidle_driver *drv,
                        int index)
 {
-       local_fiq_disable();
        omap_do_wfi();
-       local_fiq_enable();
-
        return index;
 }
 
@@ -84,8 +81,6 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 {
        struct idle_statedata *cx = state_ptr + index;
 
-       local_fiq_disable();
-
        /*
         * CPU0 has to wait and stay ON until CPU1 is OFF state.
         * This is necessary to honour hardware recommondation
@@ -134,6 +129,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
        /* Wakeup CPU1 only if it is not offlined */
        if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
                clkdm_wakeup(cpu_clkdm[1]);
+               omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
                clkdm_allow_idle(cpu_clkdm[1]);
        }
 
@@ -155,8 +151,6 @@ fail:
        cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
        cpu_done[dev->cpu] = false;
 
-       local_fiq_enable();
-
        return index;
 }