summaryrefslogtreecommitdiff
path: root/packages/linux/linux-ezx-2.6.21/ezx-pm.patch
blob: 2b498c8b8ce9585007b3e82a278a80a81ddc864c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c
===================================================================
--- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c	2007-04-26 00:08:32.000000000 -0300
+++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c	2007-04-30 18:29:49.000000000 -0300
@@ -22,6 +22,10 @@
 #include <asm/arch/pxa-regs.h>
 #include <asm/arch/ohci.h>
 
+#ifdef CONFIG_PXA_EZX
+#include <asm/arch/ezx.h>
+#endif
+
 #include "generic.h"
 
 /* Crystal clock: 13MHz */
@@ -156,7 +160,13 @@
 		break;
 	case PM_SUSPEND_MEM:
 		/* set resume return address */
+#ifdef CONFIG_PXA_EZX
+		/* set EZX flags for blob - WM */
+		*(unsigned long *)(phys_to_virt(RESUME_ADDR)) = virt_to_phys(pxa_cpu_resume);
+		*(unsigned long *)(phys_to_virt(FLAG_ADDR)) = SLEEP_FLAG;
+#else
 		PSPR = virt_to_phys(pxa_cpu_resume);
+#endif
 		pxa_cpu_suspend(PWRMODE_SLEEP);
 		break;
 	}
Index: linux-2.6.21/arch/arm/mach-pxa/pm.c
===================================================================
--- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c	2007-04-26 00:08:32.000000000 -0300
+++ linux-2.6.21/arch/arm/mach-pxa/pm.c	2007-04-30 18:29:49.000000000 -0300
@@ -24,6 +24,10 @@
 #include <asm/arch/lubbock.h>
 #include <asm/mach/time.h>
 
+#ifdef CONFIG_PXA_EZX
+#include <asm/arch/ezx.h>
+#endif
+
 
 /*
  * Debug macros
@@ -152,8 +156,12 @@
 	}
 
 	/* ensure not to come back here if it wasn't intended */
+#ifdef CONFIG_PXA_EZX
+        *(unsigned long *)(phys_to_virt(RESUME_ADDR)) = 0;
+        *(unsigned long *)(phys_to_virt(FLAG_ADDR)) = OFF_FLAG;
+#else
 	PSPR = 0;
-
+#endif
 	/* restore registers */
 	RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2);
 	RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2);