Re: keyboard issues
Hi Andreas,
thanks, will try that.
Cheers,
Michael
On Thu, Sep 6, 2018 at 4:16 AM Andreas Schwab <schwab@linux-m68k.org> wrote:
>
> On Sep 05 2018, Michael Schmitz <schmitzmic@gmail.com> wrote:
>
> > The old layout probably used the old Atari scancodes and would be useless
> > now. The Atari keyboard driver uses a hardcoded key map as found in
> > drivers/input/keyboard/atakbd.c (US layout) translating the Atari
> > scancodes to Linux keycodes which I worked out from some docs found on the
> > web, and logging raw scancodes on my Falcon. There are quite a few
> > scancodes that I wasn't sure about (see FIXME comments in same), patches
> > are welcome.
>
> Please try this:
>
> diff --git a/drivers/input/keyboard/atakbd.c b/drivers/input/keyboard/atakbd.c
> index 6f62da2909..1321e87574 100644
> --- a/drivers/input/keyboard/atakbd.c
> +++ b/drivers/input/keyboard/atakbd.c
> @@ -76,7 +76,6 @@ MODULE_LICENSE("GPL");
>
>
> static unsigned char atakbd_keycode[0x72] = { /* American layout */
> - [0] = KEY_GRAVE,
> [1] = KEY_ESC,
> [2] = KEY_1,
> [3] = KEY_2,
> @@ -117,9 +116,9 @@ static unsigned char atakbd_keycode[0x72] = { /* American layout */
> [38] = KEY_L,
> [39] = KEY_SEMICOLON,
> [40] = KEY_APOSTROPHE,
> - [41] = KEY_BACKSLASH, /* FIXME, '#' */
> + [41] = KEY_GRAVE,
> [42] = KEY_LEFTSHIFT,
> - [43] = KEY_GRAVE, /* FIXME: '~' */
> + [43] = KEY_BACKSLASH,
> [44] = KEY_Z,
> [45] = KEY_X,
> [46] = KEY_C,
> @@ -145,45 +144,34 @@ static unsigned char atakbd_keycode[0x72] = { /* American layout */
> [66] = KEY_F8,
> [67] = KEY_F9,
> [68] = KEY_F10,
> - [69] = KEY_ESC,
> - [70] = KEY_DELETE,
> - [71] = KEY_KP7,
> - [72] = KEY_KP8,
> - [73] = KEY_KP9,
> + [71] = KEY_HOME,
> + [72] = KEY_UP,
> [74] = KEY_KPMINUS,
> - [75] = KEY_KP4,
> - [76] = KEY_KP5,
> - [77] = KEY_KP6,
> + [75] = KEY_LEFT,
> + [77] = KEY_RIGHT,
> [78] = KEY_KPPLUS,
> - [79] = KEY_KP1,
> - [80] = KEY_KP2,
> - [81] = KEY_KP3,
> - [82] = KEY_KP0,
> - [83] = KEY_KPDOT,
> - [90] = KEY_KPLEFTPAREN,
> - [91] = KEY_KPRIGHTPAREN,
> - [92] = KEY_KPASTERISK, /* FIXME */
> - [93] = KEY_KPASTERISK,
> - [94] = KEY_KPPLUS,
> - [95] = KEY_HELP,
> + [80] = KEY_DOWN,
> + [82] = KEY_INSERT,
> + [83] = KEY_DELETE,
> [96] = KEY_102ND,
> - [97] = KEY_KPASTERISK, /* FIXME */
> - [98] = KEY_KPSLASH,
> + [97] = KEY_UNDO,
> + [98] = KEY_HELP,
> [99] = KEY_KPLEFTPAREN,
> [100] = KEY_KPRIGHTPAREN,
> [101] = KEY_KPSLASH,
> [102] = KEY_KPASTERISK,
> - [103] = KEY_UP,
> - [104] = KEY_KPASTERISK, /* FIXME */
> - [105] = KEY_LEFT,
> - [106] = KEY_RIGHT,
> - [107] = KEY_KPASTERISK, /* FIXME */
> - [108] = KEY_DOWN,
> - [109] = KEY_KPASTERISK, /* FIXME */
> - [110] = KEY_KPASTERISK, /* FIXME */
> - [111] = KEY_KPASTERISK, /* FIXME */
> - [112] = KEY_KPASTERISK, /* FIXME */
> - [113] = KEY_KPASTERISK /* FIXME */
> + [103] = KEY_KP7,
> + [104] = KEY_KP8,
> + [105] = KEY_KP9,
> + [106] = KEY_KP4,
> + [107] = KEY_KP5,
> + [108] = KEY_KP6,
> + [109] = KEY_KP1,
> + [110] = KEY_KP2,
> + [111] = KEY_KP3,
> + [112] = KEY_KP0,
> + [113] = KEY_KPDOT,
> + [114] = KEY_KPENTER,
> };
>
> static struct input_dev *atakbd_dev;
>
> Andreas.
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
> "And now for something completely different."
Reply to: