Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: PM/Suspend: Introduce two new platform callbacks to avoid breakage
This commit is contained in:
@@ -58,10 +58,17 @@ typedef int __bitwise suspend_state_t;
|
||||
* by @begin().
|
||||
* @prepare() is called right after devices have been suspended (ie. the
|
||||
* appropriate .suspend() method has been executed for each device) and
|
||||
* before the nonboot CPUs are disabled (it is executed with IRQs enabled).
|
||||
* This callback is optional. It returns 0 on success or a negative
|
||||
* error code otherwise, in which case the system cannot enter the desired
|
||||
* sleep state (@enter() and @finish() will not be called in that case).
|
||||
* before device drivers' late suspend callbacks are executed. It returns
|
||||
* 0 on success or a negative error code otherwise, in which case the
|
||||
* system cannot enter the desired sleep state (@prepare_late(), @enter(),
|
||||
* @wake(), and @finish() will not be called in that case).
|
||||
*
|
||||
* @prepare_late: Finish preparing the platform for entering the system sleep
|
||||
* state indicated by @begin().
|
||||
* @prepare_late is called before disabling nonboot CPUs and after
|
||||
* device drivers' late suspend callbacks have been executed. It returns
|
||||
* 0 on success or a negative error code otherwise, in which case the
|
||||
* system cannot enter the desired sleep state (@enter() and @wake()).
|
||||
*
|
||||
* @enter: Enter the system sleep state indicated by @begin() or represented by
|
||||
* the argument if @begin() is not implemented.
|
||||
@@ -69,19 +76,26 @@ typedef int __bitwise suspend_state_t;
|
||||
* error code otherwise, in which case the system cannot enter the desired
|
||||
* sleep state.
|
||||
*
|
||||
* @finish: Called when the system has just left a sleep state, right after
|
||||
* the nonboot CPUs have been enabled and before devices are resumed (it is
|
||||
* executed with IRQs enabled).
|
||||
* @wake: Called when the system has just left a sleep state, right after
|
||||
* the nonboot CPUs have been enabled and before device drivers' early
|
||||
* resume callbacks are executed.
|
||||
* This callback is optional, but should be implemented by the platforms
|
||||
* that implement @prepare_late(). If implemented, it is always called
|
||||
* after @enter(), even if @enter() fails.
|
||||
*
|
||||
* @finish: Finish wake-up of the platform.
|
||||
* @finish is called right prior to calling device drivers' regular suspend
|
||||
* callbacks.
|
||||
* This callback is optional, but should be implemented by the platforms
|
||||
* that implement @prepare(). If implemented, it is always called after
|
||||
* @enter() (even if @enter() fails).
|
||||
* @enter() and @wake(), if implemented, even if any of them fails.
|
||||
*
|
||||
* @end: Called by the PM core right after resuming devices, to indicate to
|
||||
* the platform that the system has returned to the working state or
|
||||
* the transition to the sleep state has been aborted.
|
||||
* This callback is optional, but should be implemented by the platforms
|
||||
* that implement @begin(), but platforms implementing @begin() should
|
||||
* also provide a @end() which cleans up transitions aborted before
|
||||
* that implement @begin(). Accordingly, platforms implementing @begin()
|
||||
* should also provide a @end() which cleans up transitions aborted before
|
||||
* @enter().
|
||||
*
|
||||
* @recover: Recover the platform from a suspend failure.
|
||||
@@ -93,7 +107,9 @@ struct platform_suspend_ops {
|
||||
int (*valid)(suspend_state_t state);
|
||||
int (*begin)(suspend_state_t state);
|
||||
int (*prepare)(void);
|
||||
int (*prepare_late)(void);
|
||||
int (*enter)(suspend_state_t state);
|
||||
void (*wake)(void);
|
||||
void (*finish)(void);
|
||||
void (*end)(void);
|
||||
void (*recover)(void);
|
||||
|
||||
Reference in New Issue
Block a user