int index)
 {
        bool entered_lp2 = false;
-       bool last_cpu;
 
        local_fiq_disable();
 
-       last_cpu = tegra_set_cpu_in_lp2();
+       tegra_set_cpu_in_lp2();
        cpu_pm_enter();
 
-       if (dev->cpu == 0) {
-               if (last_cpu)
-                       entered_lp2 = tegra30_cpu_cluster_power_down(dev, drv,
-                                                                    index);
-               else
-                       cpu_do_idle();
-       } else {
+       if (dev->cpu == 0)
+               entered_lp2 = tegra30_cpu_cluster_power_down(dev, drv, index);
+       else
                entered_lp2 = tegra30_cpu_core_power_down(dev, drv, index);
-       }
 
        cpu_pm_exit();
        tegra_clear_cpu_in_lp2();
 
        spin_unlock(&tegra_lp2_lock);
 }
 
-bool tegra_set_cpu_in_lp2(void)
+void tegra_set_cpu_in_lp2(void)
 {
        int phy_cpu_id = cpu_logical_map(smp_processor_id());
-       bool last_cpu = false;
-       cpumask_t *cpu_lp2_mask = tegra_cpu_lp2_mask;
        u32 *cpu_in_lp2 = tegra_cpu_lp2_mask;
 
        spin_lock(&tegra_lp2_lock);
        BUG_ON((*cpu_in_lp2 & BIT(phy_cpu_id)));
        *cpu_in_lp2 |= BIT(phy_cpu_id);
 
-       if ((phy_cpu_id == 0) && cpumask_equal(cpu_lp2_mask, cpu_online_mask))
-               last_cpu = true;
-
        spin_unlock(&tegra_lp2_lock);
-       return last_cpu;
 }
 
 static int tegra_sleep_cpu(unsigned long v2p)
 
 void tegra30_sleep_core_init(void);
 
 void tegra_clear_cpu_in_lp2(void);
-bool tegra_set_cpu_in_lp2(void);
+void tegra_set_cpu_in_lp2(void);
 void tegra_idle_lp2_last(void);
 extern void (*tegra_tear_down_cpu)(void);