diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-05-03 08:31:38 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-05-07 06:31:14 -0400 |
commit | 543b9fd3528f64c4b20439de0edb453764482de7 (patch) | |
tree | 50271e7d5365b088bea63a5a2938aedf3aa87741 /arch/powerpc/kernel/swsusp.c | |
parent | 7e11580b362fc64693de7ad5c11fbf3d1d9d0e50 (diff) |
[POWERPC] powermac: Suspend to disk on G5
Powermac G5 suspend to disk implementation. The code is platform
agnostic but only tested on powermac, no other 64-bit powerpc
machines.
Because nvidiafb still breaks suspend I have marked it EXPERIMENTAL on
powermac and because I can't test it and some lowlevel code will need
changes it is BROKEN on all other 64-bit platforms.
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 'arch/powerpc/kernel/swsusp.c')
-rw-r--r-- | arch/powerpc/kernel/swsusp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/swsusp.c b/arch/powerpc/kernel/swsusp.c index b89e4f5a0b08..064a7ba4f02c 100644 --- a/arch/powerpc/kernel/swsusp.c +++ b/arch/powerpc/kernel/swsusp.c | |||
@@ -24,6 +24,11 @@ void save_processor_state(void) | |||
24 | flush_fp_to_thread(current); | 24 | flush_fp_to_thread(current); |
25 | flush_altivec_to_thread(current); | 25 | flush_altivec_to_thread(current); |
26 | flush_spe_to_thread(current); | 26 | flush_spe_to_thread(current); |
27 | |||
28 | #ifdef CONFIG_PPC64 | ||
29 | hard_irq_disable(); | ||
30 | #endif | ||
31 | |||
27 | } | 32 | } |
28 | 33 | ||
29 | void restore_processor_state(void) | 34 | void restore_processor_state(void) |
@@ -31,4 +36,8 @@ void restore_processor_state(void) | |||
31 | #ifdef CONFIG_PPC32 | 36 | #ifdef CONFIG_PPC32 |
32 | set_context(current->active_mm->context.id, current->active_mm->pgd); | 37 | set_context(current->active_mm->context.id, current->active_mm->pgd); |
33 | #endif | 38 | #endif |
39 | |||
40 | #ifdef CONFIG_PPC64 | ||
41 | hard_irq_enable(); | ||
42 | #endif | ||
34 | } | 43 | } |