summaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorPeter Mamonov <pmamonov@gmail.com>2016-02-25 13:05:18 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2016-02-26 07:52:17 +0100
commitd7d0c7a0bb6cc3d9888a67ea6ebab10bd66350a5 (patch)
treeb733ad54bad05ccd356df10349ad543b112c8aca /drivers/input
parentfc5af2afc5d538c6d5820188043893fc1be40565 (diff)
downloadbarebox-d7d0c7a0bb6cc3d9888a67ea6ebab10bd66350a5.tar.gz
barebox-d7d0c7a0bb6cc3d9888a67ea6ebab10bd66350a5.tar.xz
input: usb keyboard: fix CTRL+ combinations
Signed-off-by: Peter Mamonov <pmamonov@gmail.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/input.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c
index ad7400fe4a..31a9c22113 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -18,6 +18,7 @@
#include <linux/bitmap.h>
#include <input/keyboard.h>
#include <dt-bindings/input/linux-event-codes.h>
+#include <readkey.h>
static LIST_HEAD(input_consumers);
@@ -164,7 +165,10 @@ static void input_console_notify(struct input_notifier *in,
if (ic->modstate[4] || ic->modstate[5])
modstate |= 1 << 2;
- if (modstate & (1 << 0))
+ if (modstate & (1 << 1)) {
+ ascii = keycode_bb_keys[ev->code];
+ ascii = ascii >= 'a' ? CTL_CH(ascii) : 0;
+ } else if (modstate & (1 << 0))
ascii = keycode_bb_shift_keys[ev->code];
else
ascii = keycode_bb_keys[ev->code];