diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/suspend.h | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 3e3a4364cbff..795032edfc46 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
| @@ -58,10 +58,17 @@ typedef int __bitwise suspend_state_t; | |||
| 58 | * by @begin(). | 58 | * by @begin(). |
| 59 | * @prepare() is called right after devices have been suspended (ie. the | 59 | * @prepare() is called right after devices have been suspended (ie. the |
| 60 | * appropriate .suspend() method has been executed for each device) and | 60 | * appropriate .suspend() method has been executed for each device) and |
| 61 | * before the nonboot CPUs are disabled (it is executed with IRQs enabled). | 61 | * before device drivers' late suspend callbacks are executed. It returns |
| 62 | * This callback is optional. It returns 0 on success or a negative | 62 | * 0 on success or a negative error code otherwise, in which case the |
| 63 | * error code otherwise, in which case the system cannot enter the desired | 63 | * system cannot enter the desired sleep state (@prepare_late(), @enter(), |
| 64 | * sleep state (@enter() and @finish() will not be called in that case). | 64 | * @wake(), and @finish() will not be called in that case). |
| 65 | * | ||
| 66 | * @prepare_late: Finish preparing the platform for entering the system sleep | ||
| 67 | * state indicated by @begin(). | ||
| 68 | * @prepare_late is called before disabling nonboot CPUs and after | ||
| 69 | * device drivers' late suspend callbacks have been executed. It returns | ||
| 70 | * 0 on success or a negative error code otherwise, in which case the | ||
| 71 | * system cannot enter the desired sleep state (@enter() and @wake()). | ||
| 65 | * | 72 | * |
| 66 | * @enter: Enter the system sleep state indicated by @begin() or represented by | 73 | * @enter: Enter the system sleep state indicated by @begin() or represented by |
| 67 | * the argument if @begin() is not implemented. | 74 | * the argument if @begin() is not implemented. |
| @@ -69,19 +76,26 @@ typedef int __bitwise suspend_state_t; | |||
| 69 | * error code otherwise, in which case the system cannot enter the desired | 76 | * error code otherwise, in which case the system cannot enter the desired |
| 70 | * sleep state. | 77 | * sleep state. |
| 71 | * | 78 | * |
| 72 | * @finish: Called when the system has just left a sleep state, right after | 79 | * @wake: Called when the system has just left a sleep state, right after |
| 73 | * the nonboot CPUs have been enabled and before devices are resumed (it is | 80 | * the nonboot CPUs have been enabled and before device drivers' early |
| 74 | * executed with IRQs enabled). | 81 | * resume callbacks are executed. |
| 82 | * This callback is optional, but should be implemented by the platforms | ||
| 83 | * that implement @prepare_late(). If implemented, it is always called | ||
| 84 | * after @enter(), even if @enter() fails. | ||
| 85 | * | ||
| 86 | * @finish: Finish wake-up of the platform. | ||
| 87 | * @finish is called right prior to calling device drivers' regular suspend | ||
| 88 | * callbacks. | ||
| 75 | * This callback is optional, but should be implemented by the platforms | 89 | * This callback is optional, but should be implemented by the platforms |
| 76 | * that implement @prepare(). If implemented, it is always called after | 90 | * that implement @prepare(). If implemented, it is always called after |
| 77 | * @enter() (even if @enter() fails). | 91 | * @enter() and @wake(), if implemented, even if any of them fails. |
| 78 | * | 92 | * |
| 79 | * @end: Called by the PM core right after resuming devices, to indicate to | 93 | * @end: Called by the PM core right after resuming devices, to indicate to |
| 80 | * the platform that the system has returned to the working state or | 94 | * the platform that the system has returned to the working state or |
| 81 | * the transition to the sleep state has been aborted. | 95 | * the transition to the sleep state has been aborted. |
| 82 | * This callback is optional, but should be implemented by the platforms | 96 | * This callback is optional, but should be implemented by the platforms |
| 83 | * that implement @begin(), but platforms implementing @begin() should | 97 | * that implement @begin(). Accordingly, platforms implementing @begin() |
| 84 | * also provide a @end() which cleans up transitions aborted before | 98 | * should also provide a @end() which cleans up transitions aborted before |
| 85 | * @enter(). | 99 | * @enter(). |
| 86 | * | 100 | * |
| 87 | * @recover: Recover the platform from a suspend failure. | 101 | * @recover: Recover the platform from a suspend failure. |
| @@ -93,7 +107,9 @@ struct platform_suspend_ops { | |||
| 93 | int (*valid)(suspend_state_t state); | 107 | int (*valid)(suspend_state_t state); |
| 94 | int (*begin)(suspend_state_t state); | 108 | int (*begin)(suspend_state_t state); |
| 95 | int (*prepare)(void); | 109 | int (*prepare)(void); |
| 110 | int (*prepare_late)(void); | ||
| 96 | int (*enter)(suspend_state_t state); | 111 | int (*enter)(suspend_state_t state); |
| 112 | void (*wake)(void); | ||
| 97 | void (*finish)(void); | 113 | void (*finish)(void); |
| 98 | void (*end)(void); | 114 | void (*end)(void); |
| 99 | void (*recover)(void); | 115 | void (*recover)(void); |
