[PATCH v2] input: usb keyboard: fix CTRL+C
Antony Pavlov
antonynpavlov at gmail.com
Wed Feb 24 06:21:48 PST 2016
On Wed, 24 Feb 2016 13:48:45 +0300
Peter Mamonov <pmamonov at gmail.com> wrote:
> Signed-off-by: Peter Mamonov <pmamonov at gmail.com>
> Signed-off-by: Sam Ravnborg <sam at ravnborg.org>
> ---
> drivers/input/input.c | 4 +++-
> drivers/input/keymap.c | 4 ++++
> include/input/keyboard.h | 1 +
> 3 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/input/input.c b/drivers/input/input.c
> index ad7400f..1c6891c 100644
> --- a/drivers/input/input.c
> +++ b/drivers/input/input.c
> @@ -164,7 +164,9 @@ 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_ctrl_keys[ev->code];
> + else if (modstate & (1 << 0))
> ascii = keycode_bb_shift_keys[ev->code];
> else
> ascii = keycode_bb_keys[ev->code];
> diff --git a/drivers/input/keymap.c b/drivers/input/keymap.c
> index 79ca461..7e443d1 100644
> --- a/drivers/input/keymap.c
> +++ b/drivers/input/keymap.c
> @@ -167,3 +167,7 @@ uint8_t keycode_bb_shift_keys[NR_KEYS] = {
> [KEY_KPEQUAL] = '=',
> [KEY_KPCOMMA] = ',',
> };
> +
> +uint8_t keycode_bb_ctrl_keys[NR_KEYS] = {
> + [KEY_C] = CTL_CH('c'),
> +};
It looks like we still have empty array with NR_KEYS bytes in it.
Can we just drop it and satisfy with short "special case" C-code for control modifier handling?
> diff --git a/include/input/keyboard.h b/include/input/keyboard.h
> index d1f5bf5..8ccdf31 100644
> --- a/include/input/keyboard.h
> +++ b/include/input/keyboard.h
> @@ -7,5 +7,6 @@
>
> extern uint8_t keycode_bb_keys[NR_KEYS];
> extern uint8_t keycode_bb_shift_keys[NR_KEYS];
> +extern uint8_t keycode_bb_ctrl_keys[NR_KEYS];
>
> #endif
> --
> 2.1.4
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
--
--
Best regards,
Antony Pavlov
More information about the barebox
mailing list