/* * Idle daemon for PowerPC. Idle daemon will handle any action * that needs to be taken when the system becomes idle. * * Written by Cort Dougan (cort@cs.nmt.edu). Subsequently hacked * on by Tom Rini, Armin Kuster, Paul Mackerras and others. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void default_idle(void) { void (*powersave)(void); powersave = ppc_md.power_save; if (!need_resched()) { if (powersave != NULL) powersave(); #ifdef CONFIG_SMP else { set_thread_flag(TIF_POLLING_NRFLAG); while (!need_resched()) barrier(); clear_thread_flag(TIF_POLLING_NRFLAG); } #endif } if (need_resched()) schedule(); } /* * The body of the idle task. */ int cpu_idle(void) { for (;;) if (ppc_md.idle != NULL) ppc_md.idle(); else default_idle(); return 0; }