Messages in this thread | | | Subject | Re: [PATCH] ARM: pxa: fix suspend on PXA3XX | From | Sven Neumann <> | Date | Mon, 31 Jan 2011 14:29:18 +0100 |
| |
On Thu, 2011-01-27 at 22:46 +0800, Eric Miao wrote: > On Wed, Jan 26, 2011 at 4:10 PM, Sven Neumann <s.neumann@raumfeld.com> wrote: > > On Wed, 2011-01-26 at 05:06 +0800, Eric Miao wrote: > >> How about this instead? > >> > >> diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c > >> index 978e1b2..1807c9a 100644 > >> --- a/arch/arm/mach-pxa/pm.c > >> +++ b/arch/arm/mach-pxa/pm.c > >> @@ -33,7 +33,7 @@ int pxa_pm_enter(suspend_state_t state) > >> #endif > >> > >> /* skip registers saving for standby */ > >> - if (state != PM_SUSPEND_STANDBY) { > >> + if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->save) { > >> pxa_cpu_pm_fns->save(sleep_save); > >> /* before sleeping, calculate and save a checksum */ > >> for (i = 0; i < pxa_cpu_pm_fns->save_count - 1; i++) > >> @@ -44,7 +44,7 @@ int pxa_pm_enter(suspend_state_t state) > >> pxa_cpu_pm_fns->enter(state); > >> cpu_init(); > >> > >> - if (state != PM_SUSPEND_STANDBY) { > >> + if (state != PM_SUSPEND_STANDBY && pxa_cpu_pm_fns->restore) { > >> /* after sleeping, validate the checksum */ > >> for (i = 0; i < pxa_cpu_pm_fns->save_count - 1; i++) > >> checksum += sleep_save[i]; > >> > > > > Not sure if that will work as well. With this change the code is > > skipping more than just the calls to pxa_cpu_pm_fns->save() and > > pxa_cpu_pm_fns->restore(). In particular it doesn't call > > pxa_cpu_pm_fns->enter(state). > > > > Nah, that ->enable() is called if the checksum is incorrect. Please compare > with the original code?
I see. Well, I've tried your patch and it seems to work as well.
Thanks, Sven
| |