> When keys are pressed on the numeric keypad, emit key codes for the
> numbers, operators, dot and enter.
> 
> Signed-off-by: Vincent Palatin <vpala...@chromium.org>
> ---
>  common/usb_kbd.c |   10 ++++++++++
>  1 files changed, 10 insertions(+), 0 deletions(-)
> 
> diff --git a/common/usb_kbd.c b/common/usb_kbd.c
> index aaf7d6f..2472d25 100644
> --- a/common/usb_kbd.c
> +++ b/common/usb_kbd.c
> @@ -87,6 +87,12 @@ static const unsigned char usb_kbd_numkey_shifted[] = {
>       '|', '~', ':', '"', '~', '<', '>', '?'
>  };
> 
> +static const unsigned char usb_kbd_num_keypad[] = {
> +     '/', '*', '-', '+', '\r',
> +     '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
> +     '.', 0, 0, 0, '='
> +};
> +
>  /*
>   * NOTE: It's important for the NUM, CAPS, SCROLL-lock bits to be in this
>   *       order. See usb_kbd_setled() function!
> @@ -218,6 +224,10 @@ static int usb_kbd_translate(struct usb_kbd_pdata
> *data, unsigned char scancode, keycode = usb_kbd_numkey[scancode - 0x1e];
>       }
> 
> +     /* Numeric keypad */
> +     if ((scancode >= 0x54) && (scancode <= 0x67))
> +             keycode = usb_kbd_num_keypad[scancode - 0x54];
> +
>       if (data->flags & USB_KBD_CTRL)
>               keycode = scancode - 0x3;

This is good, but what happens if you press "Ctrl + numpad_key" ? Check line 
221 
in usb_kbd.c for what I mean.

M
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to