diff options
author | Pavel Machek <pavel@ucw.cz> | 2009-06-11 11:25:09 -0400 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2009-06-11 11:25:09 -0400 |
commit | 51cdd9289d2e0d83eb32ed6d7a42596b02bf924e (patch) | |
tree | c133ea6b4e5b0c61234c742ebcad03a8dd957ff6 /arch/arm | |
parent | d5af27783f8c898b64f7079908ad3e27632a71ea (diff) |
[ARM] pxa/sharpsl_pm: zaurus needs generic pxa suspend/resume routines
For suspend/resume to work, spitz needs pxa_pm_suspend/resume to be
called. Otherwise PSPR is not set properly, and system will die during
resume.
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-pxa/include/mach/pm.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/pm.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-pxa/sharpsl_pm.c | 2 |
3 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/mach-pxa/include/mach/pm.h b/arch/arm/mach-pxa/include/mach/pm.h index a6eeef8a075f..fd8360c6839d 100644 --- a/arch/arm/mach-pxa/include/mach/pm.h +++ b/arch/arm/mach-pxa/include/mach/pm.h | |||
@@ -27,6 +27,8 @@ extern void pxa27x_cpu_suspend(unsigned int); | |||
27 | extern void pxa_cpu_resume(void); | 27 | extern void pxa_cpu_resume(void); |
28 | 28 | ||
29 | extern int pxa_pm_enter(suspend_state_t state); | 29 | extern int pxa_pm_enter(suspend_state_t state); |
30 | extern int pxa_pm_prepare(void); | ||
31 | extern void pxa_pm_finish(void); | ||
30 | 32 | ||
31 | /* NOTE: this is for PM debugging on Lubbock, it's really a big | 33 | /* NOTE: this is for PM debugging on Lubbock, it's really a big |
32 | * ugly, but let's keep the crap minimum here, instead of direct | 34 | * ugly, but let's keep the crap minimum here, instead of direct |
diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c index 884b174c8ead..7693355ee637 100644 --- a/arch/arm/mach-pxa/pm.c +++ b/arch/arm/mach-pxa/pm.c | |||
@@ -79,7 +79,7 @@ static int pxa_pm_valid(suspend_state_t state) | |||
79 | return -EINVAL; | 79 | return -EINVAL; |
80 | } | 80 | } |
81 | 81 | ||
82 | static int pxa_pm_prepare(void) | 82 | int pxa_pm_prepare(void) |
83 | { | 83 | { |
84 | int ret = 0; | 84 | int ret = 0; |
85 | 85 | ||
@@ -89,7 +89,7 @@ static int pxa_pm_prepare(void) | |||
89 | return ret; | 89 | return ret; |
90 | } | 90 | } |
91 | 91 | ||
92 | static void pxa_pm_finish(void) | 92 | void pxa_pm_finish(void) |
93 | { | 93 | { |
94 | if (pxa_cpu_pm_fns && pxa_cpu_pm_fns->finish) | 94 | if (pxa_cpu_pm_fns && pxa_cpu_pm_fns->finish) |
95 | pxa_cpu_pm_fns->finish(); | 95 | pxa_cpu_pm_fns->finish(); |
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index dfac7b9a7352..2546c066cd6e 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c | |||
@@ -892,6 +892,8 @@ static void sharpsl_apm_get_power_status(struct apm_power_info *info) | |||
892 | 892 | ||
893 | #ifdef CONFIG_PM | 893 | #ifdef CONFIG_PM |
894 | static struct platform_suspend_ops sharpsl_pm_ops = { | 894 | static struct platform_suspend_ops sharpsl_pm_ops = { |
895 | .prepare = pxa_pm_prepare, | ||
896 | .finish = pxa_pm_finish, | ||
895 | .enter = corgi_pxa_pm_enter, | 897 | .enter = corgi_pxa_pm_enter, |
896 | .valid = suspend_valid_only_mem, | 898 | .valid = suspend_valid_only_mem, |
897 | }; | 899 | }; |