--- linux/drivers/char/corgi_keyb.c~enable-sysrq 2003-09-05 01:18:15.000000000 +0200 +++ linux/drivers/char/corgi_keyb.c 2003-09-05 01:40:17.000000000 +0200 @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include @@ -46,6 +46,18 @@ #endif /* + * This is the KeyCode [not ScanCode!] to ASCII Code mapping table + */ + +#ifdef CONFIG_MAGIC_SYSRQ +static unsigned char corgi_sysrq_xlate[128] = + "\000abcdefghijklmno" /* 00-0f */ + "pqrstuvwxyz\000\000\000\000\000" /* 10-1f */ + " \000\000\000\000\000\000\000\0001234567" /* 20-2f */ + "890\000\000\000\000\000\000\000\000\000\000\000\000\000"; /* 30-3f */ +#endif + +/* * common logical driver definition */ extern void sharppda_kbd_press(int keycode); @@ -251,7 +263,13 @@ corgi_wakeup_button_init(); #endif // USE_WAKEUP_BUTTON - printk("keyboard initilaized.\n"); + printk("keyboard initialized.\n"); +#ifdef CONFIG_MAGIC_SYSRQ + k_sysrq_key = 0x28; // KEY_HOME + k_sysrq_xlate = corgi_sysrq_xlate; + printk("magic_sysrq initialized.\n"); +#endif + } int corgi_kbd_translate(unsigned char scancode, unsigned char *keycode_p)