Update of /cvsroot/linux-mips/linux/arch/mips/vr41xx/common
In directory usw-pr-cvs1:/tmp/cvs-serv8622/arch/mips/vr41xx/common
Modified Files:
power.c
Log Message:
*Casio cassiopeia E15 halt/restart full support throw win ce.
*Gpio mapping update.
Index: power.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/common/power.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- power.c 23 Apr 2002 13:14:28 -0000 1.3
+++ power.c 13 Jun 2002 07:45:19 -0000 1.4
@@ -39,9 +39,10 @@
extern struct semaphore vr41xx_dma_sem;
extern void vr41xx_extend_hibernate(void);
-extern void vr41xx_board_hibernate(void);
-extern void vr41xx_board_suspend(void);
-extern void vr41xx_board_standby(void);
+
+void (*vr41xx_board_hibernate)(void);
+void (*vr41xx_board_suspend)(void);
+void (*vr41xx_board_standby)(void);
#ifdef CONFIG_PM_SUSPEND_WAKEUP
@@ -86,6 +87,7 @@
unsigned int powerevent_queued;
unsigned int hibernation_state = LOAD_MAGIC;
static unsigned short clkmsk_state;
+static unsigned short more_gpioregs_to_save[2];
#ifndef VR41XX_IRQ_MAX
#define VR41XX_IRQ_MAX ((VR41XX_NUM_CPU_IRQ)+(VR41XX_NUM_SYS_IRQ)+(VR41XX_NUM_GPIO_IRQ))
@@ -99,7 +101,7 @@
//
static void do_pm_irq_request(pm_request_t rqst)
{
- static unsigned short irq_mask[(VR41XX_IRQ_MAX + 9)/16];
+ static unsigned short irq_mask[5];
unsigned int status;
switch (rqst) {
@@ -134,7 +136,7 @@
#define MAX_GPIOREG VR41XX_LCDGPMODE
#else
#define MIN_GPIOREG VR41XX_GIUIOSELL
-#define MAX_GPIOREG VR41XX_GIUINTHTSELH
+#define MAX_GPIOREG VR41XX_GIUPODATH
#endif
#define NR_GPIOREGS (((long)MAX_GPIOREG - (long)MIN_GPIOREG) / sizeof(short) + 1)
@@ -155,8 +157,10 @@
do_pm_irq_request(PM_SUSPEND);
for (i = 0; i < NR_GPIOREGS; i++)
gpio_state[i] = *(MIN_GPIOREG + i);
+ more_gpioregs_to_save[0] = *VR41XX_GIUUSEUPDN;
+ more_gpioregs_to_save[1] = *VR41XX_GIUTERMUPDN;
clkmsk_state = *VR41XX_CMUCLKMSK;
-
+
// do more board specific hibernate code
#ifdef CONFIG_VR41XX_EXTEND_HIBERNATE
vr41xx_extend_hibernate();
@@ -189,16 +193,12 @@
// this is about the point where we would check CRC if we did one
*VR41XX_CMUCLKMSK = clkmsk_state;
+ *VR41XX_GIUUSEUPDN = more_gpioregs_to_save[0];
+ *VR41XX_GIUTERMUPDN = more_gpioregs_to_save[1];
for (i = 0; i < NR_GPIOREGS; i++)
*(MIN_GPIOREG + i) = gpio_state[i];
do_pm_irq_request(PM_RESUME);
retval = pm_send_all(PM_RESUME, (void *)0);
-
-#ifdef CONFIG_REMOTE_DEBUG
- //re-init serial
- set_debug_traps();
- DbgInitSerial();
-#endif
if (!retval) {
sti();
|