1 --- linux/arch/arm/mach-sa1100/collie_apm.c.orig 2005-06-25 22:49:51.842092545 +0200
2 +++ linux/arch/arm/mach-sa1100/collie_apm.c 2005-06-25 22:49:56.931171657 +0200
4 #include <asm/arch/collie.h>
5 #include <linux/ioctl.h>
6 #include <asm/sharp_char.h>
7 +#include <asm/arch/keyboard_collie.h>
8 #endif // CONFIG_SA1100_COLLIE
9 #include <asm/arch/power.h>
12 int collie_get_on_mode;
15 +extern kbd_keyinfo sharppda_kbdstate[(NR_KEYCODES+1)];
17 #endif // CONFIG_SA1100_COLLIE
22 if (irq == IRQ_GPIO_ON_KEY) { /* suspend */
23 //DPRINTK("irq=%d count=%d collie_suspend_request%d\n",irq, count, collie_suspend_request);
24 - if ( GPLR & GPIO_ON_KEY ) {
25 + if ( GPLR & GPIO_ON_KEY || (!sharppda_kbdstate[1].in)) { //1 is the hard keycode for Cancel. GPIO_ON_KEY is active for all 4 keys in that row (why? no idea.)