All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] input: usb keyboard: fix BACKSPACE
@ 2016-02-20 14:27 Peter Mamonov
  2016-02-20 14:27 ` [PATCH 2/2] input: usb keyboard: fix CTRL+C Peter Mamonov
  2016-02-23  7:50 ` [PATCH 1/2] input: usb keyboard: fix BACKSPACE Sascha Hauer
  0 siblings, 2 replies; 14+ messages in thread
From: Peter Mamonov @ 2016-02-20 14:27 UTC (permalink / raw)
  To: barebox, s.hauer; +Cc: Peter Mamonov

Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
---
 drivers/input/keymap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/input/keymap.c b/drivers/input/keymap.c
index a07b3a8..79ca461 100644
--- a/drivers/input/keymap.c
+++ b/drivers/input/keymap.c
@@ -19,7 +19,7 @@ uint8_t keycode_bb_keys[NR_KEYS] = {
 	[KEY_0] =		'0',
 	[KEY_MINUS] =		'-',
 	[KEY_EQUAL] =		'=',
-	[KEY_BACKSPACE] =	0xff,
+	[KEY_BACKSPACE] =	8,
 	[KEY_TAB] =		'\t',
 	[KEY_Q] =		'q',
 	[KEY_W] =		'w',
@@ -101,7 +101,7 @@ uint8_t keycode_bb_shift_keys[NR_KEYS] = {
 	[KEY_0] =		')',
 	[KEY_MINUS] =		'_',
 	[KEY_EQUAL] =		'+',
-	[KEY_BACKSPACE] =	0xff,
+	[KEY_BACKSPACE] =	8,
 	[KEY_TAB] =		'\t',
 	[KEY_Q] =		'Q',
 	[KEY_W] =		'W',
-- 
2.1.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/2] input: usb keyboard: fix CTRL+C
  2016-02-20 14:27 [PATCH 1/2] input: usb keyboard: fix BACKSPACE Peter Mamonov
@ 2016-02-20 14:27 ` Peter Mamonov
  2016-02-20 16:51   ` Sam Ravnborg
                     ` (2 more replies)
  2016-02-23  7:50 ` [PATCH 1/2] input: usb keyboard: fix BACKSPACE Sascha Hauer
  1 sibling, 3 replies; 14+ messages in thread
From: Peter Mamonov @ 2016-02-20 14:27 UTC (permalink / raw)
  To: barebox, s.hauer; +Cc: Peter Mamonov

Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
---
 drivers/input/input.c    |  4 ++-
 drivers/input/keymap.c   | 82 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/input/keyboard.h |  1 +
 3 files changed, 86 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..90f1818 100644
--- a/drivers/input/keymap.c
+++ b/drivers/input/keymap.c
@@ -167,3 +167,85 @@ uint8_t keycode_bb_shift_keys[NR_KEYS] = {
 	[KEY_KPEQUAL] =		'=',
 	[KEY_KPCOMMA] =		',',
 };
+
+uint8_t keycode_bb_ctrl_keys[NR_KEYS] = {
+	[KEY_RESERVED] =	0xff,
+	[KEY_ESC] =		0x1b,
+	[KEY_1] =		'1',
+	[KEY_2] =		'2',
+	[KEY_3] =		'3',
+	[KEY_4] =		'4',
+	[KEY_5] =		'5',
+	[KEY_6] =		'6',
+	[KEY_7] =		'7',
+	[KEY_8] =		'8',
+	[KEY_9] =		'9',
+	[KEY_0] =		'0',
+	[KEY_MINUS] =		'-',
+	[KEY_EQUAL] =		'=',
+	[KEY_BACKSPACE] =	8,
+	[KEY_TAB] =		'\t',
+	[KEY_Q] =		'q',
+	[KEY_W] =		'w',
+	[KEY_E] =		'e',
+	[KEY_R] =		'r',
+	[KEY_T] =		't',
+	[KEY_Y] =		'y',
+	[KEY_U] =		'u',
+	[KEY_I] =		'i',
+	[KEY_O] =		'o',
+	[KEY_P] =		'p',
+	[KEY_LEFTBRACE] =	'[',
+	[KEY_RIGHTBRACE] =	']',
+	[KEY_ENTER] =		'\n',
+	[KEY_A] =		'a',
+	[KEY_S] =		's',
+	[KEY_D] =		'd',
+	[KEY_F] =		'f',
+	[KEY_G] =		'g',
+	[KEY_H] =		'h',
+	[KEY_J] =		'j',
+	[KEY_K] =		'k',
+	[KEY_L] =		'l',
+	[KEY_SEMICOLON] =	';',
+	[KEY_APOSTROPHE] =	'`',
+	[KEY_GRAVE] =		'^',
+	[KEY_BACKSLASH] =	'\\',
+	[KEY_Z] =		'z',
+	[KEY_X] =		'x',
+	[KEY_C] =		3,
+	[KEY_V] =		'v',
+	[KEY_B] =		'b',
+	[KEY_N] =		'n',
+	[KEY_M] =		'm',
+	[KEY_COMMA] =		',',
+	[KEY_DOT] =		'.',
+	[KEY_SLASH] =		'/',
+	[KEY_SPACE] =		' ',
+	[KEY_KP7] =		'7',
+	[KEY_KP8] =		'8',
+	[KEY_KP9] =		'9',
+	[KEY_KPMINUS] =		'-',
+	[KEY_KP4] =		'4',
+	[KEY_KP5] =		'5',
+	[KEY_KP6] =		'6',
+	[KEY_KPPLUS] =		'+',
+	[KEY_KP1] =		'1',
+	[KEY_KP2] =		'2',
+	[KEY_KP3] =		'3',
+	[KEY_KP0] =		'0',
+	[KEY_KPDOT] =		'.',
+	[KEY_KPENTER] =		'\n',
+	[KEY_HOME] =		BB_KEY_HOME,
+	[KEY_UP] =		BB_KEY_UP,
+	[KEY_PAGEUP] =		BB_KEY_PAGEUP,
+	[KEY_LEFT] =		BB_KEY_LEFT,
+	[KEY_RIGHT] =		BB_KEY_RIGHT,
+	[KEY_END] =		BB_KEY_END,
+	[KEY_DOWN] =		BB_KEY_DOWN,
+	[KEY_PAGEDOWN] =	BB_KEY_PAGEDOWN,
+	[KEY_INSERT] =		BB_KEY_INSERT,
+	[KEY_DELETE] =		BB_KEY_DEL,
+	[KEY_KPEQUAL] =		'=',
+	[KEY_KPCOMMA] =		',',
+};
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@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] input: usb keyboard: fix CTRL+C
  2016-02-20 14:27 ` [PATCH 2/2] input: usb keyboard: fix CTRL+C Peter Mamonov
@ 2016-02-20 16:51   ` Sam Ravnborg
  2016-02-23  7:55   ` Sascha Hauer
  2016-02-24 10:48   ` [PATCH v2] " Peter Mamonov
  2 siblings, 0 replies; 14+ messages in thread
From: Sam Ravnborg @ 2016-02-20 16:51 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox

On Sat, Feb 20, 2016 at 05:27:45PM +0300, Peter Mamonov wrote:
> Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> ---
>  drivers/input/input.c    |  4 ++-
>  drivers/input/keymap.c   | 82 ++++++++++++++++++++++++++++++++++++++++++++++++
>  include/input/keyboard.h |  1 +
>  3 files changed, 86 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..90f1818 100644
> --- a/drivers/input/keymap.c
> +++ b/drivers/input/keymap.c
> @@ -167,3 +167,85 @@ uint8_t keycode_bb_shift_keys[NR_KEYS] = {
>  	[KEY_KPEQUAL] =		'=',
>  	[KEY_KPCOMMA] =		',',
>  };
> +
> +uint8_t keycode_bb_ctrl_keys[NR_KEYS] = {
> +	[KEY_RESERVED] =	0xff,
> +	[KEY_ESC] =		0x1b,
> +	[KEY_1] =		'1',
> +	[KEY_2] =		'2',
> +	[KEY_3] =		'3',
> +	[KEY_4] =		'4',
> +	[KEY_5] =		'5',
> +	[KEY_6] =		'6',
> +	[KEY_7] =		'7',
> +	[KEY_8] =		'8',
> +	[KEY_9] =		'9',
> +	[KEY_0] =		'0',
> +	[KEY_MINUS] =		'-',
> +	[KEY_EQUAL] =		'=',
> +	[KEY_BACKSPACE] =	8,
> +	[KEY_TAB] =		'\t',
> +	[KEY_Q] =		'q',
> +	[KEY_W] =		'w',
> +	[KEY_E] =		'e',
> +	[KEY_R] =		'r',
> +	[KEY_T] =		't',
> +	[KEY_Y] =		'y',
> +	[KEY_U] =		'u',
> +	[KEY_I] =		'i',
> +	[KEY_O] =		'o',
> +	[KEY_P] =		'p',
> +	[KEY_LEFTBRACE] =	'[',
> +	[KEY_RIGHTBRACE] =	']',
> +	[KEY_ENTER] =		'\n',
> +	[KEY_A] =		'a',
> +	[KEY_S] =		's',
> +	[KEY_D] =		'd',
> +	[KEY_F] =		'f',
> +	[KEY_G] =		'g',
> +	[KEY_H] =		'h',
> +	[KEY_J] =		'j',
> +	[KEY_K] =		'k',
> +	[KEY_L] =		'l',
> +	[KEY_SEMICOLON] =	';',
> +	[KEY_APOSTROPHE] =	'`',
> +	[KEY_GRAVE] =		'^',
> +	[KEY_BACKSLASH] =	'\\',
> +	[KEY_Z] =		'z',
> +	[KEY_X] =		'x',
> +	[KEY_C] =		3,
Reading readkey.h it loks like the following definition
would be more descriptive:

#define [KEY_C] =               CTL_CH('c'),

The result is in the end the same.

This patch alrady use other definitions from the same
file (BB_*). So CTL_CH() is availabale.

	Sam

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] input: usb keyboard: fix BACKSPACE
  2016-02-20 14:27 [PATCH 1/2] input: usb keyboard: fix BACKSPACE Peter Mamonov
  2016-02-20 14:27 ` [PATCH 2/2] input: usb keyboard: fix CTRL+C Peter Mamonov
@ 2016-02-23  7:50 ` Sascha Hauer
  1 sibling, 0 replies; 14+ messages in thread
From: Sascha Hauer @ 2016-02-23  7:50 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox

On Sat, Feb 20, 2016 at 05:27:44PM +0300, Peter Mamonov wrote:
> Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> ---
>  drivers/input/keymap.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Applied this one with '\b' instead of 8.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] input: usb keyboard: fix CTRL+C
  2016-02-20 14:27 ` [PATCH 2/2] input: usb keyboard: fix CTRL+C Peter Mamonov
  2016-02-20 16:51   ` Sam Ravnborg
@ 2016-02-23  7:55   ` Sascha Hauer
  2016-02-24 10:48   ` [PATCH v2] " Peter Mamonov
  2 siblings, 0 replies; 14+ messages in thread
From: Sascha Hauer @ 2016-02-23  7:55 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox

On Sat, Feb 20, 2016 at 05:27:45PM +0300, Peter Mamonov wrote:
> Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> ---
>  drivers/input/input.c    |  4 ++-
>  drivers/input/keymap.c   | 82 ++++++++++++++++++++++++++++++++++++++++++++++++
>  include/input/keyboard.h |  1 +
>  3 files changed, 86 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..90f1818 100644
> --- a/drivers/input/keymap.c
> +++ b/drivers/input/keymap.c
> @@ -167,3 +167,85 @@ uint8_t keycode_bb_shift_keys[NR_KEYS] = {
>  	[KEY_KPEQUAL] =		'=',
>  	[KEY_KPCOMMA] =		',',
>  };
> +
> +uint8_t keycode_bb_ctrl_keys[NR_KEYS] = {
> +	[KEY_RESERVED] =	0xff,
> +	[KEY_ESC] =		0x1b,
> +	[KEY_1] =		'1',
> +	[KEY_2] =		'2',

Do we really want to copy the keymap without modifier here thus
effectively ignoring the ctrl key? I would assume the ctrl keymap
is almost empty with only ctrl-c supported. Then we would add support
for whatever ctrl char we might need aswell.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v2] input: usb keyboard: fix CTRL+C
  2016-02-20 14:27 ` [PATCH 2/2] input: usb keyboard: fix CTRL+C Peter Mamonov
  2016-02-20 16:51   ` Sam Ravnborg
  2016-02-23  7:55   ` Sascha Hauer
@ 2016-02-24 10:48   ` Peter Mamonov
  2016-02-24 14:21     ` Antony Pavlov
  2016-02-25 10:05     ` [PATCH v3] input: usb keyboard: fix CTRL+ combinations Peter Mamonov
  2 siblings, 2 replies; 14+ messages in thread
From: Peter Mamonov @ 2016-02-24 10:48 UTC (permalink / raw)
  To: barebox, s.hauer; +Cc: Sam Ravnborg, Peter Mamonov

Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
Signed-off-by: Sam Ravnborg <sam@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'),
+};
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@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] input: usb keyboard: fix CTRL+C
  2016-02-24 10:48   ` [PATCH v2] " Peter Mamonov
@ 2016-02-24 14:21     ` Antony Pavlov
  2016-02-24 15:07       ` Peter Mamonov
  2016-02-25 10:05     ` [PATCH v3] input: usb keyboard: fix CTRL+ combinations Peter Mamonov
  1 sibling, 1 reply; 14+ messages in thread
From: Antony Pavlov @ 2016-02-24 14:21 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox, Sam Ravnborg

On Wed, 24 Feb 2016 13:48:45 +0300
Peter Mamonov <pmamonov@gmail.com> wrote:

> Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> Signed-off-by: Sam Ravnborg <sam@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@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox


-- 
-- 
Best regards,
  Antony Pavlov

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] input: usb keyboard: fix CTRL+C
  2016-02-24 14:21     ` Antony Pavlov
@ 2016-02-24 15:07       ` Peter Mamonov
  2016-02-24 18:12         ` Sascha Hauer
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Mamonov @ 2016-02-24 15:07 UTC (permalink / raw)
  To: Antony Pavlov, s.hauer; +Cc: barebox, Sam Ravnborg

On Wed, 24 Feb 2016 17:21:48 +0300
Antony Pavlov <antonynpavlov@gmail.com> wrote:

> On Wed, 24 Feb 2016 13:48:45 +0300
> Peter Mamonov <pmamonov@gmail.com> wrote:
> 
> > Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> > Signed-off-by: Sam Ravnborg <sam@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?

Probably I've misunderstood Sasha.

Sasha, did you mean to eliminate the CTRL-keymap completely?

> 
> 
> > 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@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/barebox
> 
> 


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] input: usb keyboard: fix CTRL+C
  2016-02-24 15:07       ` Peter Mamonov
@ 2016-02-24 18:12         ` Sascha Hauer
  2016-02-24 18:53           ` Trent Piepho
  2016-02-25 10:15           ` Peter Mamonov
  0 siblings, 2 replies; 14+ messages in thread
From: Sascha Hauer @ 2016-02-24 18:12 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox, Sam Ravnborg

On Wed, Feb 24, 2016 at 06:07:01PM +0300, Peter Mamonov wrote:
> On Wed, 24 Feb 2016 17:21:48 +0300
> Antony Pavlov <antonynpavlov@gmail.com> wrote:
> 
> > On Wed, 24 Feb 2016 13:48:45 +0300
> > Peter Mamonov <pmamonov@gmail.com> wrote:
> > 
> > > Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> > > Signed-off-by: Sam Ravnborg <sam@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?
> 
> Probably I've misunderstood Sasha.
> 
> Sasha, did you mean to eliminate the CTRL-keymap completely?

No, I didn't, although that would be an option aswell. It would safe us
a few more bytes in the binary. The question is, how many more keys are
in the CTRL map that are interesting for us? Are there more than CTRL-C?
If yes, then it's probably better to keep the map. If not, a special
CTRL-C case in code might be the better option.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] input: usb keyboard: fix CTRL+C
  2016-02-24 18:12         ` Sascha Hauer
@ 2016-02-24 18:53           ` Trent Piepho
  2016-02-25  6:05             ` Sascha Hauer
  2016-02-25 10:15           ` Peter Mamonov
  1 sibling, 1 reply; 14+ messages in thread
From: Trent Piepho @ 2016-02-24 18:53 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox@lists.infradead.org, Sam Ravnborg, Peter Mamonov

On Wed, 2016-02-24 at 19:12 +0100, Sascha Hauer wrote:
> > > >  
> > > > -	if (modstate & (1 << 0))
> > > > +	if (modstate & (1 << 1))
> > > > +		ascii = keycode_bb_ctrl_keys[ev->code];
                
           ascii = keycode_bb_keys[ev->code];
           ascii = ascii >= 'a' ? CTL_CH(ascii): 0;

> > Sasha, did you mean to eliminate the CTRL-keymap completely?
> 
> No, I didn't, although that would be an option aswell. It would safe us
> a few more bytes in the binary. The question is, how many more keys are
> in the CTRL map that are interesting for us? Are there more than CTRL-C?
> If yes, then it's probably better to keep the map. If not, a special
> CTRL-C case in code might be the better option.

Would the above, or a slight modification, be ok?  It gets almost all
the controls keys one could care about.

Ignoring control for all keys other than c doesn't make sense to me.
Does anything else do that?
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] input: usb keyboard: fix CTRL+C
  2016-02-24 18:53           ` Trent Piepho
@ 2016-02-25  6:05             ` Sascha Hauer
  0 siblings, 0 replies; 14+ messages in thread
From: Sascha Hauer @ 2016-02-25  6:05 UTC (permalink / raw)
  To: Trent Piepho; +Cc: barebox@lists.infradead.org, Sam Ravnborg, Peter Mamonov

On Wed, Feb 24, 2016 at 06:53:23PM +0000, Trent Piepho wrote:
> On Wed, 2016-02-24 at 19:12 +0100, Sascha Hauer wrote:
> > > > >  
> > > > > -	if (modstate & (1 << 0))
> > > > > +	if (modstate & (1 << 1))
> > > > > +		ascii = keycode_bb_ctrl_keys[ev->code];
>                 
>            ascii = keycode_bb_keys[ev->code];
>            ascii = ascii >= 'a' ? CTL_CH(ascii): 0;
> 
> > > Sasha, did you mean to eliminate the CTRL-keymap completely?
> > 
> > No, I didn't, although that would be an option aswell. It would safe us
> > a few more bytes in the binary. The question is, how many more keys are
> > in the CTRL map that are interesting for us? Are there more than CTRL-C?
> > If yes, then it's probably better to keep the map. If not, a special
> > CTRL-C case in code might be the better option.
> 
> Would the above, or a slight modification, be ok?  It gets almost all
> the controls keys one could care about.

Yes, this looks good.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v3] input: usb keyboard: fix CTRL+ combinations
  2016-02-24 10:48   ` [PATCH v2] " Peter Mamonov
  2016-02-24 14:21     ` Antony Pavlov
@ 2016-02-25 10:05     ` Peter Mamonov
  2016-02-26  6:52       ` Sascha Hauer
  1 sibling, 1 reply; 14+ messages in thread
From: Peter Mamonov @ 2016-02-25 10:05 UTC (permalink / raw)
  To: barebox, s.hauer; +Cc: Sam Ravnborg, Peter Mamonov, Trent Piepho

Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>
---
 drivers/input/input.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index ad7400f..31a9c22 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];
-- 
2.1.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] input: usb keyboard: fix CTRL+C
  2016-02-24 18:12         ` Sascha Hauer
  2016-02-24 18:53           ` Trent Piepho
@ 2016-02-25 10:15           ` Peter Mamonov
  1 sibling, 0 replies; 14+ messages in thread
From: Peter Mamonov @ 2016-02-25 10:15 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox, Sam Ravnborg

On Wed, 24 Feb 2016 19:12:27 +0100
Sascha Hauer <s.hauer@pengutronix.de> wrote:

> On Wed, Feb 24, 2016 at 06:07:01PM +0300, Peter Mamonov wrote:
> > On Wed, 24 Feb 2016 17:21:48 +0300
> > Antony Pavlov <antonynpavlov@gmail.com> wrote:
> > 
> > > On Wed, 24 Feb 2016 13:48:45 +0300
> > > Peter Mamonov <pmamonov@gmail.com> wrote:
> > > 
> > > > Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> > > > Signed-off-by: Sam Ravnborg <sam@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?
> > 
> > Probably I've misunderstood Sasha.
> > 
> > Sasha, did you mean to eliminate the CTRL-keymap completely?
> 
> No, I didn't, although that would be an option aswell. It would safe
> us a few more bytes in the binary. The question is, how many more
> keys are in the CTRL map that are interesting for us? Are there more
> than CTRL-C? 

The CTRL+D combo is used for "save & quit" in the edit program.

> If yes, then it's probably better to keep the map. If
> not, a special CTRL-C case in code might be the better option.
> 
> Sascha
> 


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v3] input: usb keyboard: fix CTRL+ combinations
  2016-02-25 10:05     ` [PATCH v3] input: usb keyboard: fix CTRL+ combinations Peter Mamonov
@ 2016-02-26  6:52       ` Sascha Hauer
  0 siblings, 0 replies; 14+ messages in thread
From: Sascha Hauer @ 2016-02-26  6:52 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox, Sam Ravnborg, Trent Piepho

On Thu, Feb 25, 2016 at 01:05:18PM +0300, Peter Mamonov wrote:
> Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Signed-off-by: Trent Piepho <tpiepho@kymetacorp.com>
> ---
>  drivers/input/input.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

Applied, thanks

Sascha

> 
> diff --git a/drivers/input/input.c b/drivers/input/input.c
> index ad7400f..31a9c22 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];
> -- 
> 2.1.4
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2016-02-26  6:52 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-20 14:27 [PATCH 1/2] input: usb keyboard: fix BACKSPACE Peter Mamonov
2016-02-20 14:27 ` [PATCH 2/2] input: usb keyboard: fix CTRL+C Peter Mamonov
2016-02-20 16:51   ` Sam Ravnborg
2016-02-23  7:55   ` Sascha Hauer
2016-02-24 10:48   ` [PATCH v2] " Peter Mamonov
2016-02-24 14:21     ` Antony Pavlov
2016-02-24 15:07       ` Peter Mamonov
2016-02-24 18:12         ` Sascha Hauer
2016-02-24 18:53           ` Trent Piepho
2016-02-25  6:05             ` Sascha Hauer
2016-02-25 10:15           ` Peter Mamonov
2016-02-25 10:05     ` [PATCH v3] input: usb keyboard: fix CTRL+ combinations Peter Mamonov
2016-02-26  6:52       ` Sascha Hauer
2016-02-23  7:50 ` [PATCH 1/2] input: usb keyboard: fix BACKSPACE Sascha Hauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.