aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Kondratyev <wulf@FreeBSD.org>2018-11-25 19:37:00 +0000
committerVladimir Kondratyev <wulf@FreeBSD.org>2018-11-25 19:37:00 +0000
commita0e9218c019b30a68fe137f8540a8c8da947480b (patch)
treef02e15c00238b1b0bb583eda9b7592d6bc4d8cc0
parent038c170fc2480ccf15d977bcbd2a6a7fe1da09d4 (diff)
downloadsrc-a0e9218c019b30a68fe137f8540a8c8da947480b.tar.gz
src-a0e9218c019b30a68fe137f8540a8c8da947480b.zip
evdev: Fix pause key release event in AT keyboard set 1 to evdev xlat-or.
MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=340926
-rw-r--r--sys/dev/evdev/evdev_utils.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/evdev/evdev_utils.c b/sys/dev/evdev/evdev_utils.c
index d4b41e014fd3..14ddb30e9414 100644
--- a/sys/dev/evdev/evdev_utils.c
+++ b/sys/dev/evdev/evdev_utils.c
@@ -250,12 +250,15 @@ evdev_scancode2key(int *state, int scancode)
*/
*state = 0;
if ((scancode & 0x7f) == 0x1D)
- *state = 0x1D;
+ *state = scancode;
return (NONE);
/* NOT REACHED */
case 0x1D: /* pause / break */
+ case 0x9D:
+ if ((*state ^ scancode) & 0x80)
+ return (NONE);
*state = 0;
- if (scancode != 0x45)
+ if ((scancode & 0x7f) != 0x45)
return (NONE);
keycode = KEY_PAUSE;
break;