void default_idle(void) { set_bl_bit(); local_irq_enable(); /* Isn't this racy ? */ cpu_sleep(); clear_bl_bit(); }
static int sh_pm_enter(suspend_state_t state) { local_irq_disable(); set_bl_bit(); sh_mobile_call_standby(SUSP_MODE_STANDBY_SF); local_irq_disable(); clear_bl_bit(); return 0; }
static int sh_pm_enter(suspend_state_t state) { if (!(sh_mobile_sleep_supported & SUSP_MODE_STANDBY_SF)) return -ENXIO; local_irq_disable(); set_bl_bit(); sh_mobile_call_standby(SUSP_MODE_STANDBY_SF); local_irq_disable(); clear_bl_bit(); return 0; }
static void sh7785lcr_power_off(void) { unsigned char *p; p = ioremap(PLD_POFCR, PLD_POFCR + 1); if (!p) { printk(KERN_ERR "%s: ioremap error.\n", __func__); return; } *p = 0x01; iounmap(p); set_bl_bit(); while (1) cpu_relax(); }
static void default_idle(void) { if (!hlt_counter) { clear_thread_flag(TIF_POLLING_NRFLAG); smp_mb__after_clear_bit(); set_bl_bit(); stop_critical_timings(); while (!need_resched()) cpu_sleep(); start_critical_timings(); clear_bl_bit(); set_thread_flag(TIF_POLLING_NRFLAG); } else while (!need_resched()) cpu_relax(); }
void default_idle(void) { if (hlt_works()) { clear_thread_flag(TIF_POLLING_NRFLAG); smp_mb__after_clear_bit(); set_bl_bit(); if (!need_resched()) { local_irq_enable(); cpu_sleep(); } else local_irq_enable(); set_thread_flag(TIF_POLLING_NRFLAG); clear_bl_bit(); } else poll_idle(); }