diff options
author | Shaohua Li <shaohua.li@intel.com> | 2005-10-30 18:00:01 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-30 20:37:15 -0500 |
commit | eb9289eb20df6b54214c45ac7c6bf5179a149026 (patch) | |
tree | dac51cecdd94e0c7273c990259ddd800057311b9 /drivers/acpi/sleep | |
parent | 0245b3e787dc3267a915e1f56419e7e9c197e148 (diff) |
[PATCH] introduce .valid callback for pm_ops
Add pm_ops.valid callback, so only the available pm states show in
/sys/power/state. And this also makes an earlier states error report at
enter_state before we do actual suspend/resume.
Signed-off-by: Shaohua Li<shaohua.li@intel.com>
Acked-by: Pavel Machek<pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/acpi/sleep')
-rw-r--r-- | drivers/acpi/sleep/main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index aee50b453265..930427fc0c4b 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c | |||
@@ -158,7 +158,15 @@ int acpi_suspend(u32 acpi_state) | |||
158 | return -EINVAL; | 158 | return -EINVAL; |
159 | } | 159 | } |
160 | 160 | ||
161 | static int acpi_pm_state_valid(suspend_state_t pm_state) | ||
162 | { | ||
163 | u32 acpi_state = acpi_suspend_states[pm_state]; | ||
164 | |||
165 | return sleep_states[acpi_state]; | ||
166 | } | ||
167 | |||
161 | static struct pm_ops acpi_pm_ops = { | 168 | static struct pm_ops acpi_pm_ops = { |
169 | .valid = acpi_pm_state_valid, | ||
162 | .prepare = acpi_pm_prepare, | 170 | .prepare = acpi_pm_prepare, |
163 | .enter = acpi_pm_enter, | 171 | .enter = acpi_pm_enter, |
164 | .finish = acpi_pm_finish, | 172 | .finish = acpi_pm_finish, |