sysrq for ibook
PATCH 1/1 sysrq for ibook
Hi,
I am somehow missing the sysrq-feature with the iBook keyboard. As there is no F13=sysrq on it, IMHO it might be an idea to emulate it via Fn+esc.
Bye,
Joerg
adbhid.c renamed from adbhid.c.sysrq +27 -0
@@ -67,13 +67,16 @@/* Some special keys */ #define ADB_KEY_DEL 0x33 +#define ADB_KEY_ESC 0x35#define ADB_KEY_CMD 0x37#define ADB_KEY_CAPSLOCK 0x39#define ADB_KEY_FN 0x3f +#define ADB_KEY_SYSRQ 0x69#define ADB_KEY_FWDEL 0x75#define ADB_KEY_POWER_OLD 0x7e#define ADB_KEY_POWER 0x7f +u8 adb_to_linux_keycodes[128 ] = {/* 0x00 */ KEY_A ,/* 30 */ /* 0x01 */ KEY_S ,/* 31 */
@@ -221,6 +224,7 @@#define FLAG_FN_KEY_PRESSED 0x00000001#define FLAG_POWER_FROM_FN 0x00000002#define FLAG_EMU_FWDEL_DOWN 0x00000004 +#define FLAG_EMU_SYSRQ_DOWN 0x00000008static struct adbhid *adbhid[16 ];
@@ -329,6 +333,12 @@ keycode =ADB_KEY_FWDEL ;break ; } +/* Emulate Fn+esc = sysreq */ +if (ahid->flags &FLAG_EMU_SYSRQ_DOWN ) { + ahid->flags &= ~FLAG_EMU_SYSRQ_DOWN ; + keycode =ADB_KEY_SYSRQ ; +break ; + } }else ahid->flags |=FLAG_FN_KEY_PRESSED ;/* Swallow the key press */
@@ -343,6 +353,23 @@ ahid->flags |= FLAG_EMU_FWDEL_DOWN; }break ; +case ADB_KEY_ESC : +/* Emulate Fn+esc = left alt+sysreq */ +if (ahid->flags &FLAG_FN_KEY_PRESSED ) { + keycode =ADB_KEY_SYSRQ ; +input_regs (&ahid->input, regs); +if (up_flag) { + ahid->flags &= ~FLAG_EMU_SYSRQ_DOWN ; +/* Warning: Hack to avoid twisted fingers ...*/ +input_report_key (&ahid->input,KEY_LEFTALT ,0 ); + }else { + ahid->flags |=FLAG_EMU_SYSRQ_DOWN ; +/* Warning: Hack to avoid twisted fingers ...*/ +input_report_key (&ahid->input,KEY_LEFTALT ,1 ); + } +input_sync (&ahid->input); + } +break ;#endif /* CONFIG_PPC_PMAC */ }