* [PATCH 0/2] input: atakbd.c bug fixes @ 2018-09-06 23:40 Michael Schmitz 2018-09-06 23:40 ` [PATCH 1/2] input: atakbd.c - fix Atari keymap Michael Schmitz 2018-09-06 23:40 ` [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour Michael Schmitz 0 siblings, 2 replies; 11+ messages in thread From: Michael Schmitz @ 2018-09-06 23:40 UTC (permalink / raw) To: linux-input; +Cc: debian-68k, linux-m68k Two bug fixes for the Atari keyboard input driver: - keymap fixes: multiple keymap errors that had gone unnoticed since migration of the m68k keyboard driver code to the input framework. Correct the wrong keycodes - keymap is stil US but keypad, help and undo keys all generate the correct keycodes now. - capslock fix: the Atari driver incorrectly assumed that capslock were a toggle key (i.e. sending no break scancodes), and synthesized a make/break keycode pair on each capslock scancode. This resulted in duplicate make/break codes on key release, and capslock functioning as a shift key. Remove code sending make/break pairs to get functional capslock behaviour. Tested on my own Atari Falcon 030. TIA for your review. Please CC linux-m68k in replies. Cheers, Michael CC to debian-68k, for consideration at the upcoming m68k hackers meeting. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] input: atakbd.c - fix Atari keymap 2018-09-06 23:40 [PATCH 0/2] input: atakbd.c bug fixes Michael Schmitz @ 2018-09-06 23:40 ` Michael Schmitz 2018-09-07 0:26 ` Finn Thain 2018-09-06 23:40 ` [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour Michael Schmitz 1 sibling, 1 reply; 11+ messages in thread From: Michael Schmitz @ 2018-09-06 23:40 UTC (permalink / raw) To: linux-input; +Cc: debian-68k, linux-m68k, Andreas Schwab, Michael Schmitz From: Andreas Schwab <schwab@linux-m68k.org> Fix errors in Atari keymap (mostly in keypad, help and undo keys). Patch provided on debian-68k ML by Andreas Schwab <schwab@linux-m68k.org>, keymap array size and unhandled scancode limit adjusted to 0x73 by me. Tested-by: Michael Schmitz <schmitzmic@gmail.com> Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> --- drivers/input/keyboard/atakbd.c | 64 ++++++++++++++++----------------------- 1 files changed, 26 insertions(+), 38 deletions(-) diff --git a/drivers/input/keyboard/atakbd.c b/drivers/input/keyboard/atakbd.c index 6f62da2..e989574 100644 --- a/drivers/input/keyboard/atakbd.c +++ b/drivers/input/keyboard/atakbd.c @@ -75,8 +75,7 @@ */ -static unsigned char atakbd_keycode[0x72] = { /* American layout */ - [0] = KEY_GRAVE, +static unsigned char atakbd_keycode[0x73] = { /* American layout */ [1] = KEY_ESC, [2] = KEY_1, [3] = KEY_2, @@ -117,9 +116,9 @@ [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 @@ [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; @@ -191,7 +179,7 @@ static void atakbd_interrupt(unsigned char scancode, char down) { - if (scancode < 0x72) { /* scancodes < 0xf2 are keys */ + if (scancode < 0x73) { /* scancodes < 0xf3 are keys */ // report raw events here? @@ -205,7 +193,7 @@ static void atakbd_interrupt(unsigned char scancode, char down) input_report_key(atakbd_dev, scancode, down); input_sync(atakbd_dev); } - } else /* scancodes >= 0xf2 are mouse data, most likely */ + } else /* scancodes >= 0xf3 are mouse data, most likely */ printk(KERN_INFO "atakbd: unhandled scancode %x\n", scancode); return; ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] input: atakbd.c - fix Atari keymap 2018-09-06 23:40 ` [PATCH 1/2] input: atakbd.c - fix Atari keymap Michael Schmitz @ 2018-09-07 0:26 ` Finn Thain 2018-09-07 9:22 ` Andreas Schwab 0 siblings, 1 reply; 11+ messages in thread From: Finn Thain @ 2018-09-07 0:26 UTC (permalink / raw) To: Andreas Schwab; +Cc: Michael Schmitz, linux-input, debian-68k, linux-m68k On Fri, 7 Sep 2018, Michael Schmitz wrote: > From: Andreas Schwab <schwab@linux-m68k.org> > Andreas, because the authorship credit is yours, this patch will also need a 'Signed-off-by' tag from you before it can be merged. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] input: atakbd.c - fix Atari keymap 2018-09-07 0:26 ` Finn Thain @ 2018-09-07 9:22 ` Andreas Schwab 2018-09-08 8:06 ` Michael Schmitz 0 siblings, 1 reply; 11+ messages in thread From: Andreas Schwab @ 2018-09-07 9:22 UTC (permalink / raw) To: Finn Thain; +Cc: Michael Schmitz, linux-input, debian-68k, linux-m68k Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> Andreas. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] input: atakbd.c - fix Atari keymap 2018-09-07 9:22 ` Andreas Schwab @ 2018-09-08 8:06 ` Michael Schmitz 0 siblings, 0 replies; 11+ messages in thread From: Michael Schmitz @ 2018-09-08 8:06 UTC (permalink / raw) To: Andreas Schwab, Finn Thain; +Cc: linux-input, debian-68k, linux-m68k Thanks Andreas! Cheers, Michael Am 07.09.2018 um 21:22 schrieb Andreas Schwab: > Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> > > Andreas. > ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour 2018-09-06 23:40 [PATCH 0/2] input: atakbd.c bug fixes Michael Schmitz 2018-09-06 23:40 ` [PATCH 1/2] input: atakbd.c - fix Atari keymap Michael Schmitz @ 2018-09-06 23:40 ` Michael Schmitz 2018-09-17 19:43 ` Dmitry Torokhov 1 sibling, 1 reply; 11+ messages in thread From: Michael Schmitz @ 2018-09-06 23:40 UTC (permalink / raw) To: linux-input; +Cc: debian-68k, linux-m68k, Michael Schmitz The CapsLock key on Atari keyboards is not a toggle, it does send the normal make and break scancodes. Drop the CapsLock toggle handling code, which did cause the CapsLock key to merely act as a Shift key. Tested-by: Michael Schmitz <schmitzmic@gmail.com> Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> --- drivers/input/keyboard/atakbd.c | 10 ++-------- 1 files changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/input/keyboard/atakbd.c b/drivers/input/keyboard/atakbd.c index e989574..6caee80 100644 --- a/drivers/input/keyboard/atakbd.c +++ b/drivers/input/keyboard/atakbd.c @@ -185,14 +185,8 @@ static void atakbd_interrupt(unsigned char scancode, char down) scancode = atakbd_keycode[scancode]; - if (scancode == KEY_CAPSLOCK) { /* CapsLock is a toggle switch key on Amiga */ - input_report_key(atakbd_dev, scancode, 1); - input_report_key(atakbd_dev, scancode, 0); - input_sync(atakbd_dev); - } else { - input_report_key(atakbd_dev, scancode, down); - input_sync(atakbd_dev); - } + input_report_key(atakbd_dev, scancode, down); + input_sync(atakbd_dev); } else /* scancodes >= 0xf3 are mouse data, most likely */ printk(KERN_INFO "atakbd: unhandled scancode %x\n", scancode); ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour 2018-09-06 23:40 ` [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour Michael Schmitz @ 2018-09-17 19:43 ` Dmitry Torokhov 2018-09-17 20:29 ` Andreas Schwab 0 siblings, 1 reply; 11+ messages in thread From: Dmitry Torokhov @ 2018-09-17 19:43 UTC (permalink / raw) To: Michael Schmitz, Andreas Schwab; +Cc: linux-input, debian-68k, linux-m68k On Fri, Sep 07, 2018 at 11:40:43AM +1200, Michael Schmitz wrote: > The CapsLock key on Atari keyboards is not a toggle, it does send the > normal make and break scancodes. > > Drop the CapsLock toggle handling code, which did cause the CapsLock > key to merely act as a Shift key. > > Tested-by: Michael Schmitz <schmitzmic@gmail.com> > Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> Andreas, I have no idea how Atari keyboards work, can you add your signed-off-by (or NAK) to this one as well please? > > --- > drivers/input/keyboard/atakbd.c | 10 ++-------- > 1 files changed, 2 insertions(+), 8 deletions(-) > > diff --git a/drivers/input/keyboard/atakbd.c b/drivers/input/keyboard/atakbd.c > index e989574..6caee80 100644 > --- a/drivers/input/keyboard/atakbd.c > +++ b/drivers/input/keyboard/atakbd.c > @@ -185,14 +185,8 @@ static void atakbd_interrupt(unsigned char scancode, char down) > > scancode = atakbd_keycode[scancode]; > > - if (scancode == KEY_CAPSLOCK) { /* CapsLock is a toggle switch key on Amiga */ > - input_report_key(atakbd_dev, scancode, 1); > - input_report_key(atakbd_dev, scancode, 0); > - input_sync(atakbd_dev); > - } else { > - input_report_key(atakbd_dev, scancode, down); > - input_sync(atakbd_dev); > - } > + input_report_key(atakbd_dev, scancode, down); > + input_sync(atakbd_dev); > } else /* scancodes >= 0xf3 are mouse data, most likely */ > printk(KERN_INFO "atakbd: unhandled scancode %x\n", scancode); > > -- > 1.7.0.4 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour 2018-09-17 19:43 ` Dmitry Torokhov @ 2018-09-17 20:29 ` Andreas Schwab 2018-09-17 22:36 ` Dmitry Torokhov 0 siblings, 1 reply; 11+ messages in thread From: Andreas Schwab @ 2018-09-17 20:29 UTC (permalink / raw) To: Dmitry Torokhov; +Cc: Michael Schmitz, linux-input, debian-68k, linux-m68k On Sep 17 2018, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > On Fri, Sep 07, 2018 at 11:40:43AM +1200, Michael Schmitz wrote: >> The CapsLock key on Atari keyboards is not a toggle, it does send the >> normal make and break scancodes. >> >> Drop the CapsLock toggle handling code, which did cause the CapsLock >> key to merely act as a Shift key. >> >> Tested-by: Michael Schmitz <schmitzmic@gmail.com> >> Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> > > Andreas, I have no idea how Atari keyboards work, can you add your > signed-off-by (or NAK) to this one as well please? The old atakbd driver never had that special handling. Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> Andreas. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour 2018-09-17 20:29 ` Andreas Schwab @ 2018-09-17 22:36 ` Dmitry Torokhov 2018-09-18 2:03 ` Michael Schmitz 0 siblings, 1 reply; 11+ messages in thread From: Dmitry Torokhov @ 2018-09-17 22:36 UTC (permalink / raw) To: Andreas Schwab; +Cc: Michael Schmitz, linux-input, debian-68k, linux-m68k On Mon, Sep 17, 2018 at 10:29:08PM +0200, Andreas Schwab wrote: > On Sep 17 2018, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > > > On Fri, Sep 07, 2018 at 11:40:43AM +1200, Michael Schmitz wrote: > >> The CapsLock key on Atari keyboards is not a toggle, it does send the > >> normal make and break scancodes. > >> > >> Drop the CapsLock toggle handling code, which did cause the CapsLock > >> key to merely act as a Shift key. > >> > >> Tested-by: Michael Schmitz <schmitzmic@gmail.com> > >> Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> > > > > Andreas, I have no idea how Atari keyboards work, can you add your > > signed-off-by (or NAK) to this one as well please? > > The old atakbd driver never had that special handling. > > Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> Applied, thank you. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour 2018-09-17 22:36 ` Dmitry Torokhov @ 2018-09-18 2:03 ` Michael Schmitz 2018-09-18 17:08 ` Dmitry Torokhov 0 siblings, 1 reply; 11+ messages in thread From: Michael Schmitz @ 2018-09-18 2:03 UTC (permalink / raw) To: Dmitry Torokhov, Andreas Schwab; +Cc: linux-input, debian-68k, linux-m68k Thanks Dmitry! I had asked Andreas' signoff for his keymap fixes only - the rewrite of the Atari keyboard driver to the current input framework (and hence the CapsLock toggle bug) was entirely mine, no blame attaches to Andreas there. Cheers, Michael On 18/09/18 10:36, Dmitry Torokhov wrote: > On Mon, Sep 17, 2018 at 10:29:08PM +0200, Andreas Schwab wrote: >> On Sep 17 2018, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: >> >>> On Fri, Sep 07, 2018 at 11:40:43AM +1200, Michael Schmitz wrote: >>>> The CapsLock key on Atari keyboards is not a toggle, it does send the >>>> normal make and break scancodes. >>>> >>>> Drop the CapsLock toggle handling code, which did cause the CapsLock >>>> key to merely act as a Shift key. >>>> >>>> Tested-by: Michael Schmitz <schmitzmic@gmail.com> >>>> Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> >>> Andreas, I have no idea how Atari keyboards work, can you add your >>> signed-off-by (or NAK) to this one as well please? >> The old atakbd driver never had that special handling. >> >> Signed-off-by: Andreas Schwab <schwab@linux-m68k.org> > Applied, thank you. > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour 2018-09-18 2:03 ` Michael Schmitz @ 2018-09-18 17:08 ` Dmitry Torokhov 0 siblings, 0 replies; 11+ messages in thread From: Dmitry Torokhov @ 2018-09-18 17:08 UTC (permalink / raw) To: Michael Schmitz; +Cc: Andreas Schwab, linux-input, debian-68k, linux-m68k Hi Michael, On Tue, Sep 18, 2018 at 02:03:29PM +1200, Michael Schmitz wrote: > Thanks Dmitry! > > I had asked Andreas' signoff for his keymap fixes only - the rewrite of the > Atari keyboard driver to the current input framework (and hence the CapsLock > toggle bug) was entirely mine, no blame attaches to Andreas there. It was not about blame, it was about helping me to check the sanity of the patch given I have no idea about the hardware ;) Thanks. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-09-18 17:08 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-09-06 23:40 [PATCH 0/2] input: atakbd.c bug fixes Michael Schmitz 2018-09-06 23:40 ` [PATCH 1/2] input: atakbd.c - fix Atari keymap Michael Schmitz 2018-09-07 0:26 ` Finn Thain 2018-09-07 9:22 ` Andreas Schwab 2018-09-08 8:06 ` Michael Schmitz 2018-09-06 23:40 ` [PATCH 2/2] input: atakbd.c - fix Atari CapsLock behaviour Michael Schmitz 2018-09-17 19:43 ` Dmitry Torokhov 2018-09-17 20:29 ` Andreas Schwab 2018-09-17 22:36 ` Dmitry Torokhov 2018-09-18 2:03 ` Michael Schmitz 2018-09-18 17:08 ` Dmitry Torokhov
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.