Lines Matching refs:state

160 static bool valid_state(suspend_state_t state)
167 return suspend_ops && suspend_ops->valid && suspend_ops->valid(state);
172 /* "mem" and "freeze" are always present in /sys/power/state. */
184 suspend_state_t state;
186 for (state = PM_SUSPEND_TO_IDLE; state <= PM_SUSPEND_MEM; state++)
187 if (mem_sleep_labels[state] &&
188 !strcmp(str, mem_sleep_labels[state])) {
189 mem_sleep_default = state;
230 int suspend_valid_only_mem(suspend_state_t state)
232 return state == PM_SUSPEND_MEM;
236 static bool sleep_state_supported(suspend_state_t state)
238 return state == PM_SUSPEND_TO_IDLE || (suspend_ops && suspend_ops->enter);
241 static int platform_suspend_prepare(suspend_state_t state)
243 return state != PM_SUSPEND_TO_IDLE && suspend_ops->prepare ?
247 static int platform_suspend_prepare_late(suspend_state_t state)
249 return state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->prepare ?
253 static int platform_suspend_prepare_noirq(suspend_state_t state)
255 if (state == PM_SUSPEND_TO_IDLE)
262 static void platform_resume_noirq(suspend_state_t state)
264 if (state == PM_SUSPEND_TO_IDLE) {
272 static void platform_resume_early(suspend_state_t state)
274 if (state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->restore)
278 static void platform_resume_finish(suspend_state_t state)
280 if (state != PM_SUSPEND_TO_IDLE && suspend_ops->finish)
284 static int platform_suspend_begin(suspend_state_t state)
286 if (state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->begin)
289 return suspend_ops->begin(state);
294 static void platform_resume_end(suspend_state_t state)
296 if (state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->end)
302 static void platform_recover(suspend_state_t state)
304 if (state != PM_SUSPEND_TO_IDLE && suspend_ops->recover)
308 static bool platform_suspend_again(suspend_state_t state)
310 return state != PM_SUSPEND_TO_IDLE && suspend_ops->suspend_again ?
335 * suspend_prepare - Prepare for entering system sleep state.
337 * Common code run for every system sleep state that can be entered (except for
341 static int suspend_prepare(suspend_state_t state)
345 if (!sleep_state_supported(state))
381 * suspend_enter - Make the system enter the given sleep state.
382 * @state: System sleep state to enter.
383 * @wakeup: Returns information that the sleep state should not be re-entered.
387 static int suspend_enter(suspend_state_t state, bool *wakeup)
391 error = platform_suspend_prepare(state);
400 error = platform_suspend_prepare_late(state);
409 error = platform_suspend_prepare_noirq(state);
416 if (state == PM_SUSPEND_TO_IDLE) {
435 state, true);
436 error = suspend_ops->enter(state);
438 state, false);
454 platform_resume_noirq(state);
458 platform_resume_early(state);
464 platform_resume_finish(state);
469 * suspend_devices_and_enter - Suspend devices and enter system sleep state.
470 * @state: System sleep state to enter.
472 int suspend_devices_and_enter(suspend_state_t state)
477 if (!sleep_state_supported(state))
480 pm_suspend_target_state = state;
482 if (state == PM_SUSPEND_TO_IDLE)
485 error = platform_suspend_begin(state);
501 error = suspend_enter(state, &wakeup);
502 } while (!error && !wakeup && platform_suspend_again(state));
508 trace_suspend_resume(TPS("resume_console"), state, true);
510 trace_suspend_resume(TPS("resume_console"), state, false);
513 platform_resume_end(state);
518 platform_recover(state);
536 * enter_state - Do common work needed to enter system sleep state.
537 * @state: System sleep state to enter.
539 * Make sure that no one else is trying to put the system into a sleep state.
541 * system enter the given sleep state and clean up after wakeup.
543 static int enter_state(suspend_state_t state)
547 trace_suspend_resume(TPS("suspend_enter"), state, true);
548 if (state == PM_SUSPEND_TO_IDLE) {
555 } else if (!valid_state(state)) {
561 if (state == PM_SUSPEND_TO_IDLE)
570 pm_pr_dbg("Preparing system for sleep (%s)\n", mem_sleep_labels[state]);
572 error = suspend_prepare(state);
579 trace_suspend_resume(TPS("suspend_enter"), state, false);
580 pm_pr_dbg("Suspending system (%s)\n", mem_sleep_labels[state]);
582 error = suspend_devices_and_enter(state);
596 * @state: System sleep state to enter.
598 * Check if the value of @state represents one of the supported states,
601 int pm_suspend(suspend_state_t state)
605 if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX)
608 pr_info("suspend entry (%s)\n", mem_sleep_labels[state]);
609 error = enter_state(state);