[ARM] 4735/1: Unbreak pxa25x suspend/resume

Previous thread: vmcoreinfo: add the array length of "free_list" for filtering free pages by Linux Kernel Mailing List on Tuesday, January 8, 2008 - 8:59 pm. (1 message)

Next thread: [MIPS] Fix CONFIG_BOOT_RAW. by Linux Kernel Mailing List on Tuesday, January 8, 2008 - 8:59 pm. (1 message)
To: <git-commits-head@...>
Date: Tuesday, January 8, 2008 - 8:59 pm

Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=c...
Commit: 56b11288cb92104d3589930efdc7d0f50b8f4328
Parent: b8c9a18712f7b617fda66d878ce3759c9e575ba0
Author: Richard Purdie <rpurdie@rpsys.net>
AuthorDate: Wed Jan 2 00:54:49 2008 +0100
Committer: Russell King <rmk+kernel@arm.linux.org.uk>
CommitDate: Thu Jan 3 18:06:27 2008 +0000

[ARM] 4735/1: Unbreak pxa25x suspend/resume

Suspend/resume on the pxa25x was fairly obviously broken in revision
711be5ccfe9a02ba560aa918a008c31ea4760163.

This patch fixes the damage by adding back the missing code.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/arm/mach-pxa/pxa25x.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index dcd81f8..9732d5d 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -178,13 +178,19 @@ static void pxa25x_cpu_pm_save(unsigned long *sleep_save)
SAVE(GAFR1_L); SAVE(GAFR1_U);
SAVE(GAFR2_L); SAVE(GAFR2_U);

- SAVE(ICMR);
+ SAVE(ICMR); ICMR = 0;
SAVE(CKEN);
SAVE(PSTR);
+
+ /* Clear GPIO transition detect bits */
+ GEDR0 = GEDR0; GEDR1 = GEDR1; GEDR2 = GEDR2;
}

static void pxa25x_cpu_pm_restore(unsigned long *sleep_save)
{
+ /* ensure not to come back here if it wasn't intended */
+ PSPR = 0;
+
/* restore registers */
RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2);
RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2);
@@ -195,7 +201,12 @@ static void pxa25x_cpu_pm_restore(unsigned long *sleep_save)
RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2);
RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2);

+ PSSR = PSSR_RDH | PSSR_PH;
+
RESTORE(CKEN);
+
+ ICLR = 0;
+ ICCR = 1;
RESTORE(IC...

Previous thread: vmcoreinfo: add the array length of "free_list" for filtering free pages by Linux Kernel Mailing List on Tuesday, January 8, 2008 - 8:59 pm. (1 message)

Next thread: [MIPS] Fix CONFIG_BOOT_RAW. by Linux Kernel Mailing List on Tuesday, January 8, 2008 - 8:59 pm. (1 message)