[PATCH] ARM: pxa: fix suspend on PXA3XX

Sven Neumann s.neumann at raumfeld.com
Wed Jan 26 03:10:47 EST 2011


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).


Thanks,
Sven





More information about the linux-arm-kernel mailing list