Lines Matching defs:state
163 static bool valid_state(suspend_state_t state)
171 return suspend_ops && suspend_ops->valid && suspend_ops->valid(state) &&
177 /* "mem" and "freeze" are always present in /sys/power/state. */
189 suspend_state_t state;
191 for (state = PM_SUSPEND_TO_IDLE; state <= PM_SUSPEND_MEM; state++)
192 if (mem_sleep_labels[state] &&
193 !strcmp(str, mem_sleep_labels[state])) {
194 mem_sleep_default = state;
195 mem_sleep_current = state;
233 * @state: Target system sleep state.
239 int suspend_valid_only_mem(suspend_state_t state)
241 return state == PM_SUSPEND_MEM;
245 static bool sleep_state_supported(suspend_state_t state)
247 return state == PM_SUSPEND_TO_IDLE ||
248 (valid_state(state) && !cxl_mem_active());
251 static int platform_suspend_prepare(suspend_state_t state)
253 return state != PM_SUSPEND_TO_IDLE && suspend_ops->prepare ?
257 static int platform_suspend_prepare_late(suspend_state_t state)
259 return state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->prepare ?
263 static int platform_suspend_prepare_noirq(suspend_state_t state)
265 if (state == PM_SUSPEND_TO_IDLE)
272 static void platform_resume_noirq(suspend_state_t state)
274 if (state == PM_SUSPEND_TO_IDLE) {
282 static void platform_resume_early(suspend_state_t state)
284 if (state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->restore)
288 static void platform_resume_finish(suspend_state_t state)
290 if (state != PM_SUSPEND_TO_IDLE && suspend_ops->finish)
294 static int platform_suspend_begin(suspend_state_t state)
296 if (state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->begin)
299 return suspend_ops->begin(state);
304 static void platform_resume_end(suspend_state_t state)
306 if (state == PM_SUSPEND_TO_IDLE && s2idle_ops && s2idle_ops->end)
312 static void platform_recover(suspend_state_t state)
314 if (state != PM_SUSPEND_TO_IDLE && suspend_ops->recover)
318 static bool platform_suspend_again(suspend_state_t state)
320 return state != PM_SUSPEND_TO_IDLE && suspend_ops->suspend_again ?
345 * suspend_prepare - Prepare for entering system sleep state.
346 * @state: Target system sleep state.
348 * Common code run for every system sleep state that can be entered (except for
352 static int suspend_prepare(suspend_state_t state)
356 if (!sleep_state_supported(state))
392 * suspend_enter - Make the system enter the given sleep state.
393 * @state: System sleep state to enter.
394 * @wakeup: Returns information that the sleep state should not be re-entered.
398 static int suspend_enter(suspend_state_t state, bool *wakeup)
402 error = platform_suspend_prepare(state);
411 error = platform_suspend_prepare_late(state);
420 error = platform_suspend_prepare_noirq(state);
427 if (state == PM_SUSPEND_TO_IDLE) {
446 state, true);
447 error = suspend_ops->enter(state);
449 state, false);
465 platform_resume_noirq(state);
469 platform_resume_early(state);
475 platform_resume_finish(state);
480 * suspend_devices_and_enter - Suspend devices and enter system sleep state.
481 * @state: System sleep state to enter.
483 int suspend_devices_and_enter(suspend_state_t state)
488 if (!sleep_state_supported(state))
491 pm_suspend_target_state = state;
493 if (state == PM_SUSPEND_TO_IDLE)
496 error = platform_suspend_begin(state);
512 error = suspend_enter(state, &wakeup);
513 } while (!error && !wakeup && platform_suspend_again(state));
519 trace_suspend_resume(TPS("resume_console"), state, true);
521 trace_suspend_resume(TPS("resume_console"), state, false);
524 platform_resume_end(state);
529 platform_recover(state);
547 * enter_state - Do common work needed to enter system sleep state.
548 * @state: System sleep state to enter.
550 * Make sure that no one else is trying to put the system into a sleep state.
552 * system enter the given sleep state and clean up after wakeup.
554 static int enter_state(suspend_state_t state)
558 trace_suspend_resume(TPS("suspend_enter"), state, true);
559 if (state == PM_SUSPEND_TO_IDLE) {
566 } else if (!valid_state(state)) {
572 if (state == PM_SUSPEND_TO_IDLE)
581 pm_pr_dbg("Preparing system for sleep (%s)\n", mem_sleep_labels[state]);
583 error = suspend_prepare(state);
590 trace_suspend_resume(TPS("suspend_enter"), state, false);
591 pm_pr_dbg("Suspending system (%s)\n", mem_sleep_labels[state]);
593 error = suspend_devices_and_enter(state);
607 * @state: System sleep state to enter.
609 * Check if the value of @state represents one of the supported states,
612 int pm_suspend(suspend_state_t state)
616 if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX)
619 pr_info("suspend entry (%s)\n", mem_sleep_labels[state]);
620 error = enter_state(state);