diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-03-19 06:53:55 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-03-25 22:35:17 -0400 |
commit | 70b52b3869a31aab85241a1f998f9943a3905637 (patch) | |
tree | 3c6944c5545c206cc43b8c20f1b9fe150b7ac0e9 /drivers/macintosh/apm_emu.c | |
parent | 17e638bc28f2fdc9c0d3eebfb80fce43827b8d12 (diff) |
[POWERPC] powermac: disallow pmu sleep notifiers from aborting sleep
Tracing through the code, no current PMU sleep notifier can abort sleep.
Since no new PMU sleep notifiers should be added, this patch simplifies the
code and removes the ability to abort sleep.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'drivers/macintosh/apm_emu.c')
-rw-r--r-- | drivers/macintosh/apm_emu.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/macintosh/apm_emu.c b/drivers/macintosh/apm_emu.c index c5e4d43f97fc..cdb0bead9917 100644 --- a/drivers/macintosh/apm_emu.c +++ b/drivers/macintosh/apm_emu.c | |||
@@ -96,7 +96,7 @@ static DECLARE_WAIT_QUEUE_HEAD(apm_waitqueue); | |||
96 | static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); | 96 | static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); |
97 | static struct apm_user * user_list; | 97 | static struct apm_user * user_list; |
98 | 98 | ||
99 | static int apm_notify_sleep(struct pmu_sleep_notifier *self, int when); | 99 | static void apm_notify_sleep(struct pmu_sleep_notifier *self, int when); |
100 | static struct pmu_sleep_notifier apm_sleep_notifier = { | 100 | static struct pmu_sleep_notifier apm_sleep_notifier = { |
101 | apm_notify_sleep, | 101 | apm_notify_sleep, |
102 | SLEEP_LEVEL_USERLAND, | 102 | SLEEP_LEVEL_USERLAND, |
@@ -352,7 +352,7 @@ static int do_open(struct inode * inode, struct file * filp) | |||
352 | * doesn't provide a way to NAK, but this could be added | 352 | * doesn't provide a way to NAK, but this could be added |
353 | * here. | 353 | * here. |
354 | */ | 354 | */ |
355 | static int wait_all_suspend(void) | 355 | static void wait_all_suspend(void) |
356 | { | 356 | { |
357 | DECLARE_WAITQUEUE(wait, current); | 357 | DECLARE_WAITQUEUE(wait, current); |
358 | 358 | ||
@@ -366,24 +366,19 @@ static int wait_all_suspend(void) | |||
366 | remove_wait_queue(&apm_suspend_waitqueue, &wait); | 366 | remove_wait_queue(&apm_suspend_waitqueue, &wait); |
367 | 367 | ||
368 | DBG("apm_emu: wait_all_suspend() - complete !\n"); | 368 | DBG("apm_emu: wait_all_suspend() - complete !\n"); |
369 | |||
370 | return 1; | ||
371 | } | 369 | } |
372 | 370 | ||
373 | static int apm_notify_sleep(struct pmu_sleep_notifier *self, int when) | 371 | static void apm_notify_sleep(struct pmu_sleep_notifier *self, int when) |
374 | { | 372 | { |
375 | switch(when) { | 373 | switch(when) { |
376 | case PBOOK_SLEEP_REQUEST: | 374 | case PBOOK_SLEEP_REQUEST: |
377 | queue_event(APM_SYS_SUSPEND, NULL); | 375 | queue_event(APM_SYS_SUSPEND, NULL); |
378 | if (!wait_all_suspend()) | 376 | wait_all_suspend(); |
379 | return PBOOK_SLEEP_REFUSE; | ||
380 | break; | 377 | break; |
381 | case PBOOK_SLEEP_REJECT: | ||
382 | case PBOOK_WAKE: | 378 | case PBOOK_WAKE: |
383 | queue_event(APM_NORMAL_RESUME, NULL); | 379 | queue_event(APM_NORMAL_RESUME, NULL); |
384 | break; | 380 | break; |
385 | } | 381 | } |
386 | return PBOOK_SLEEP_OK; | ||
387 | } | 382 | } |
388 | 383 | ||
389 | #define APM_CRITICAL 10 | 384 | #define APM_CRITICAL 10 |