--- zzzz-none-000/linux-2.4.17/drivers/acorn/char/keyb_arc.c 2001-08-12 17:38:48.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/drivers/acorn/char/keyb_arc.c 2004-11-24 13:23:55.000000000 +0000 @@ -81,7 +81,7 @@ 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '`', '1', '2', '3', '4', '5', '6', '7', - '8', '9', '0', '-', '=', '£', 127, 0, + '8', '9', '0', '-', '=', 'ú', 127, 0, 0, 0, 0, '/', '*', '#', 9, 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '\\', 22, 23, 25, '7', @@ -419,12 +419,51 @@ disable_irq(irq); } +static int a5kkbd_setkeycode(unsigned int scancode, unsigned int keycode) +{ + return -EINVAL; +} + +static int a5kkbd_getkeycode(unsigned int scancode) +{ + return -EINVAL; +} + +static int a5kkbd_translate(unsigned char scancode, unsigned char *keycode, char rawmode) +{ + *keycode = scancode; + return 1; +} + +static char a5kkbd_unexpected_up(unsigned char keycode) +{ + return 0200; +} + +static int a5kkbd_rate(struct kbd_repeat *rep) +{ + return -EINVAL; +} + #ifdef CONFIG_KBDMOUSE static struct busmouse a5kkbd_mouse = { 6, "kbdmouse", NULL, NULL, NULL, 7 }; #endif +struct kbd_ops_struct a5k_kbd_ops = { + k_setkeycode: a5kkbd_setkeycode, + k_getkeycode: a5kkbd_getkeycode, + k_translate: a5kkbd_translate, + k_unexpected_up: a5kkbd_unexpected_up, + k_leds: a5kkbd_leds, + k_rate: a5kkbd_rate, +#ifdef CONFIG_MAGIC_SYSRQ + k_sysrq_xlate: a5kkbd_sysrq_xlate, + k_sysrq_key: 13, +#endif +}; + void __init a5kkbd_init_hw (void) { if (request_irq (IRQ_KEYBOARDTX, a5kkbd_tx, 0, "keyboard", NULL) != 0)