From: Leblanc f. <fle...@us...> - 2002-06-13 07:45:23
|
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(); |