diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2007-10-18 06:04:41 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 17:37:18 -0400 |
commit | e6c5eb9541f2197a3ffab90b1c7a3250a9b51bf6 (patch) | |
tree | ac227415da22d4345f8e72a6a8e781757b6ce85a /include/linux | |
parent | 26398a70ea35f153feb799fa850c71685667712b (diff) |
PM: Rework struct platform_suspend_ops
There is no reason why the .prepare() and .finish() methods in 'struct
platform_suspend_ops' should take any arguments, since architectures don't use
these methods' argument in any practically meaningful way (ie. either the
target system sleep state is conveyed to the platform by .set_target(), or
there is only one suspend state supported and it is indicated to the PM core
by .valid(), or .prepare() and .finish() aren't defined at all). There also
is no reason why .finish() should return any result.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: Len Brown <lenb@kernel.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/suspend.h | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index dce47825dbb8..541f0c46d34f 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
@@ -46,12 +46,10 @@ typedef int __bitwise suspend_state_t; | |||
46 | * @prepare() fails. If @set_target() fails (ie. returns nonzero), | 46 | * @prepare() fails. If @set_target() fails (ie. returns nonzero), |
47 | * @prepare(), @enter() and @finish() will not be called by the PM core. | 47 | * @prepare(), @enter() and @finish() will not be called by the PM core. |
48 | * This callback is optional. However, if it is implemented, the argument | 48 | * This callback is optional. However, if it is implemented, the argument |
49 | * passed to @prepare(), @enter() and @finish() is meaningless and should | 49 | * passed to @enter() is meaningless and should be ignored. |
50 | * be ignored. | ||
51 | * | 50 | * |
52 | * @prepare: Prepare the platform for entering the system sleep state indicated | 51 | * @prepare: Prepare the platform for entering the system sleep state indicated |
53 | * by @set_target() or represented by the argument if @set_target() is not | 52 | * by @set_target(). |
54 | * implemented. | ||
55 | * @prepare() is called right after devices have been suspended (ie. the | 53 | * @prepare() is called right after devices have been suspended (ie. the |
56 | * appropriate .suspend() method has been executed for each device) and | 54 | * appropriate .suspend() method has been executed for each device) and |
57 | * before the nonboot CPUs are disabled (it is executed with IRQs enabled). | 55 | * before the nonboot CPUs are disabled (it is executed with IRQs enabled). |
@@ -67,8 +65,7 @@ typedef int __bitwise suspend_state_t; | |||
67 | * | 65 | * |
68 | * @finish: Called when the system has just left a sleep state, right after | 66 | * @finish: Called when the system has just left a sleep state, right after |
69 | * the nonboot CPUs have been enabled and before devices are resumed (it is | 67 | * the nonboot CPUs have been enabled and before devices are resumed (it is |
70 | * executed with IRQs enabled). If @set_target() is not implemented, the | 68 | * executed with IRQs enabled). |
71 | * argument represents the sleep state being left. | ||
72 | * This callback is optional, but should be implemented by the platforms | 69 | * This callback is optional, but should be implemented by the platforms |
73 | * that implement @prepare(). If implemented, it is always called after | 70 | * that implement @prepare(). If implemented, it is always called after |
74 | * @enter() (even if @enter() fails). | 71 | * @enter() (even if @enter() fails). |
@@ -76,9 +73,9 @@ typedef int __bitwise suspend_state_t; | |||
76 | struct platform_suspend_ops { | 73 | struct platform_suspend_ops { |
77 | int (*valid)(suspend_state_t state); | 74 | int (*valid)(suspend_state_t state); |
78 | int (*set_target)(suspend_state_t state); | 75 | int (*set_target)(suspend_state_t state); |
79 | int (*prepare)(suspend_state_t state); | 76 | int (*prepare)(void); |
80 | int (*enter)(suspend_state_t state); | 77 | int (*enter)(suspend_state_t state); |
81 | int (*finish)(suspend_state_t state); | 78 | void (*finish)(void); |
82 | }; | 79 | }; |
83 | 80 | ||
84 | #ifdef CONFIG_SUSPEND | 81 | #ifdef CONFIG_SUSPEND |