[ARM] pxa/sharpsl_pm: zaurus needs generic pxa suspend/resume routines
authorPavel Machek <pavel@ucw.cz>
Thu, 11 Jun 2009 15:25:09 +0000 (23:25 +0800)
committerEric Miao <eric.y.miao@gmail.com>
Thu, 11 Jun 2009 15:25:09 +0000 (23:25 +0800)
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>
arch/arm/mach-pxa/include/mach/pm.h
arch/arm/mach-pxa/pm.c
arch/arm/mach-pxa/sharpsl_pm.c

index a6eeef8a075f4f1918e4f8b8a7137d834209f64e..fd8360c6839d5a69d9faa44fa3bb77c3edb0dc06 100644 (file)
@@ -27,6 +27,8 @@ extern void pxa27x_cpu_suspend(unsigned int);
 extern void pxa_cpu_resume(void);
 
 extern int pxa_pm_enter(suspend_state_t state);
+extern int pxa_pm_prepare(void);
+extern void pxa_pm_finish(void);
 
 /* NOTE: this is for PM debugging on Lubbock,  it's really a big
  * ugly, but let's keep the crap minimum here, instead of direct
index 884b174c8ead93d42c4f9966b84e09ea583e25a5..7693355ee637a60a5496bd980580380c0d19df39 100644 (file)
@@ -79,7 +79,7 @@ static int pxa_pm_valid(suspend_state_t state)
        return -EINVAL;
 }
 
-static int pxa_pm_prepare(void)
+int pxa_pm_prepare(void)
 {
        int ret = 0;
 
@@ -89,7 +89,7 @@ static int pxa_pm_prepare(void)
        return ret;
 }
 
-static void pxa_pm_finish(void)
+void pxa_pm_finish(void)
 {
        if (pxa_cpu_pm_fns && pxa_cpu_pm_fns->finish)
                pxa_cpu_pm_fns->finish();
index dfac7b9a73528870940891c1c22611457cc6cb80..2546c066cd6e9b2c1fdbf932e3793797ea5b8898 100644 (file)
@@ -892,6 +892,8 @@ static void sharpsl_apm_get_power_status(struct apm_power_info *info)
 
 #ifdef CONFIG_PM
 static struct platform_suspend_ops sharpsl_pm_ops = {
+       .prepare        = pxa_pm_prepare,
+       .finish         = pxa_pm_finish,
        .enter          = corgi_pxa_pm_enter,
        .valid          = suspend_valid_only_mem,
 };