[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