On Tue, Aug 16, 2005 at 10:51:55AM +1000, Benjamin Herrenschmidt wrote: > You need to keep track that it's pressed to send appropriate key up as > well I suppose...
Found another snag with this. Using Fn activates the numeric keypad emulation of the keyboard, effectively blocking commands p,m,o. Unfortunately can't use F12 itself here as that is mapped as a button. Code below uses Alt-F11, but I'm not sure if that is specific enough as it could be used by normal applications. Any sugestion for a better key combination to use? -- Martin Signed-off-by: Martin Habets <[EMAIL PROTECTED]> --------------------------------------------------------------------------- Index: 2.6/drivers/macintosh/adbhid.c =================================================================== --- 2.6.orig/drivers/macintosh/adbhid.c 2005-08-15 13:49:27.000000000 +0100 +++ 2.6/drivers/macintosh/adbhid.c 2005-08-16 22:48:15.000000000 +0100 @@ -69,7 +69,9 @@ #define ADB_KEY_DEL 0x33 #define ADB_KEY_CMD 0x37 #define ADB_KEY_CAPSLOCK 0x39 +#define ADB_KEY_LEFTALT 0x3a #define ADB_KEY_FN 0x3f +#define ADB_KEY_F11 0x67 #define ADB_KEY_FWDEL 0x75 #define ADB_KEY_POWER_OLD 0x7e #define ADB_KEY_POWER 0x7f @@ -221,6 +223,8 @@ #define FLAG_FN_KEY_PRESSED 0x00000001 #define FLAG_POWER_FROM_FN 0x00000002 #define FLAG_EMU_FWDEL_DOWN 0x00000004 +#define FLAG_LEFTALT_DOWN 0x00000008 +#define FLAG_F11_DOWN 0x00000010 static struct adbhid *adbhid[16]; @@ -343,6 +347,31 @@ ahid->flags |= FLAG_EMU_FWDEL_DOWN; } break; +#ifdef CONFIG_MAGIC_SYSRQ + case ADB_KEY_LEFTALT: + /* Keep track of the Alt key state */ + if (up_flag) { + ahid->flags &= ~FLAG_LEFTALT_DOWN; + /* Map Alt+F11 to SysRq. */ + if (ahid->flags & FLAG_F11_DOWN) { + ahid->flags &= ~FLAG_F11_DOWN; + keycode = 0x69; + break; + } + } else + ahid->flags |= FLAG_LEFTALT_DOWN; + break; + case ADB_KEY_F11: + /* Map Alt+F11 to SysRq. */ + if (ahid->flags & FLAG_LEFTALT_DOWN) { + keycode = 0x69; + if (up_flag) + ahid->flags &= ~FLAG_F11_DOWN; + else + ahid->flags |= FLAG_F11_DOWN; + } + break; +#endif #endif /* CONFIG_PPC_PMAC */ } -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]