When caps lock is enabled we should convert lower case to upper case. Add
this to the input key processing so that caps lock works correctly.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v2: None

 drivers/input/input.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 3120d1e..0cb117f 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -424,16 +424,19 @@ static int input_keycodes_to_ascii(struct input_config 
*config,
        /* Start conversion by looking for the first new keycode (by same). */
        for (i = same; i < num_keycodes; i++) {
                int key = keycode[i];
-               int ch = (key < table->num_entries) ? table->xlate[key] : 0xff;
+               int ch;
 
                /*
                 * For a normal key (with an ASCII value), add it; otherwise
                 * translate special key to escape sequence if possible.
                 */
-               if (ch != 0xff) {
-                       if (ch_count < max_chars)
-                               output_ch[ch_count] = (uchar)ch;
-                       ch_count++;
+               if (key < table->num_entries) {
+                       ch = table->xlate[key];
+                       if ((config->flags & FLAG_CAPS_LOCK) &&
+                           ch >= 'a' && ch <= 'z')
+                               ch -= 'a' - 'A';
+                       if (ch_count < max_chars && ch != 0xff)
+                               output_ch[ch_count++] = (uchar)ch;
                } else {
                        ch_count += input_keycode_to_ansi364(config, key,
                                                output_ch, max_chars);
-- 
2.6.0.rc2.230.g3dd15c0

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

Reply via email to