From: Dmitry Torokhov <dtor@insightbb.com>
To: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Richard Hughes <hughsient@gmail.com>,
linux-acpi@vger.kernel.org, linux-input@atrey.karlin.mff.cuni.cz,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Input: document the proper usage of EV_KEY and KEY_UNKNOWN (v2)
Date: Fri, 29 Jun 2007 01:04:52 -0400 [thread overview]
Message-ID: <200706290104.53909.dtor@insightbb.com> (raw)
In-Reply-To: <20070606165509.GB18984@khazad-dum.debian.net>
Hi Henrique,
On Wednesday 06 June 2007 12:55, Henrique de Moraes Holschuh wrote:
> We have most of the pieces needed to have sane, generic userland keyboard
> handling in place for a while now, but it is not sufficiently documented.
>
> This patch documents the requirements and best practices for EV_KEY input
> drivers.
>
> Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Richard Hughes <hughsient@gmail.com>
> ---
>
> I have changed the KEY_UNKNOWN preference over positional keycodes around,
> and also added a small paragraph on the expected behaviour of userland
> applications re. EV_MSC MSC_SCAN events.
>
> Comments?
Finally gottent to the patch. It seems a little long-winded, how about
the patch below instead?
--
Dmitry
Subject: Input: document the proper usage of EV_KEY and KEY_UNKNOWN
From: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
We have most of the pieces needed to have sane, generic userland keyboard
handling in place for a while now, but it is not sufficiently documented.
This patch documents the requirements and best practices for EV_KEY input
drivers.
Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---
Documentation/input/input-programming.txt | 36 ++++++++++++++++++++++++++++--
1 files changed, 34 insertions(+), 2 deletions(-)
Index: work/Documentation/input/input-programming.txt
===================================================================
--- work.orig/Documentation/input/input-programming.txt
+++ work/Documentation/input/input-programming.txt
@@ -263,7 +263,38 @@ getkeycode() and setkeycode() callbacks
keycode/keycodesize/keycodemax mapping mechanism provided by input core
and implement sparse keycode maps.
-1.8 Key autorepeat
+1.8 Keymaps and KEY_UNKNOWN
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Follow these rules when creating a default keymap for an input device:
+
+- If a key has a specific function that is known to the driver, it should
+ generate keycode corresponding to that function. FOr example, in a laptop
+ where FN+F1 key combination is always marked "HELP" the driver should
+ generate KEY_HELP and not KEY_FN_F1.
+
+- If a positional keycode for a key already exists in input.h (e.g. KEY_FN_F1
+ for FN+F1), it should be used instead of KEY_UNKNOWN. When such a code
+ doesn't exist KEY_UNKNOWN should be used.
+
+- Non-positional keycodes like KEY_PROG1 should be avoided.
+
+Input drivers that generate EV_KEY events should always support either
+dev->getkeycode()/dev->setkeycode(), or keycode, keycodemax and keycodesize
+methods of reprogramming their keymaps. Drivers that do not allow changing
+keycode map should not genrate KEY_UNKNOWN events.
+
+In addition to EV_KEY events drivers should also generate EV_MSC/MSC_SCAN
+events. This event provides assistance to a generic userspace keyboard helper
+in remapping keys and assigning them specific function.
+
+MSC_SCAN event should be sent in the same event block (marked by
+EV_SYN/SYN_REPORT event) as corresponding EV_KEY event. The scan code
+reported must be a valid index in the keycode map, as implemented by
+dev->getkeycode()/dev->setkeycode(), or keycode, keycodemax and keycodesize
+for the device.
+
+1.9 Key autorepeat
~~~~~~~~~~~~~~~~~~
... is simple. It is handled by the input.c module. Hardware autorepeat is
@@ -272,7 +303,8 @@ present, it is broken sometimes (at keyb
autorepeat for your device, just set EV_REP in dev->evbit. All will be
handled by the input system.
-1.9 Other event types, handling output events
+
+1.10 Other event types, handling output events
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The other event types up to now are:
next prev parent reply other threads:[~2007-06-29 5:04 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-26 17:28 [RFC] thinkpad-acpi input hotkey events Henrique de Moraes Holschuh
[not found] ` <11802004861625-git-send-email-hmh-N3TV7GIv+o9fyO9Q7EP/yw@public.gmane.org>
2007-05-26 17:31 ` [PATCH] ACPI: thinkpad-acpi: register input device Henrique de Moraes Holschuh
[not found] ` <11802006651698-git-send-email-hmh-N3TV7GIv+o9fyO9Q7EP/yw@public.gmane.org>
2007-05-26 17:31 ` [PATCH] ACPI: thinkpad-acpi: add input device support to hotkey subdriver Henrique de Moraes Holschuh
2007-05-26 17:31 ` [PATCH] ACPI: thinkpad-acpi: allow hotkey to input event map to be modified Henrique de Moraes Holschuh
2007-05-26 17:31 ` [PATCH] ACPI: thinkpad-acpi: add thinkpad keys to input.h Henrique de Moraes Holschuh
2007-05-27 3:40 ` Dmitry Torokhov
2007-05-27 12:15 ` Henrique de Moraes Holschuh
2007-05-27 18:10 ` Henrique de Moraes Holschuh
[not found] ` <20070527121513.GC19562-ZGHd14iZgfaRjzvQDGKj+xxZW9W5cXbT@public.gmane.org>
2007-05-29 3:16 ` Dmitry Torokhov
[not found] ` <200705282316.32173.dtor-xOqKmqBdiMhF6kxbq+BtvQ@public.gmane.org>
2007-05-29 13:05 ` Henrique de Moraes Holschuh
2007-05-30 13:57 ` Dmitry Torokhov
2007-05-30 14:04 ` Matthew Garrett
2007-05-30 14:18 ` Dmitry Torokhov
2007-05-30 14:25 ` Matthew Garrett
2007-05-30 14:31 ` Dmitry Torokhov
2007-05-30 14:42 ` Matthew Garrett
2007-05-30 15:07 ` Henrique de Moraes Holschuh
2007-05-30 15:24 ` Henrique de Moraes Holschuh
2007-05-30 16:04 ` Dmitry Torokhov
2007-05-30 17:24 ` Henrique de Moraes Holschuh
2007-05-30 20:25 ` Dmitry Torokhov
2007-05-30 23:01 ` [ibm-acpi-devel] " Matthew Garrett
2007-05-31 0:53 ` Making KEY_UNKNOWN really useful to userland Henrique de Moraes Holschuh
2007-05-31 4:33 ` Dmitry Torokhov
2007-05-31 22:28 ` [PATCH] Input: document the proper usage of EV_KEY and KEY_UNKNOWN Henrique de Moraes Holschuh
2007-05-31 23:33 ` Matthew Garrett
2007-06-01 0:13 ` Henrique de Moraes Holschuh
2007-06-01 0:24 ` Matthew Garrett
2007-06-01 1:29 ` Henrique de Moraes Holschuh
2007-06-01 1:44 ` Matthew Garrett
2007-06-01 2:11 ` Henrique de Moraes Holschuh
2007-06-01 3:33 ` Dmitry Torokhov
2007-06-01 4:08 ` Matthew Garrett
2007-06-01 4:37 ` Dmitry Torokhov
2007-06-01 13:13 ` Matthew Garrett
2007-06-01 14:04 ` Dmitry Torokhov
2007-06-01 14:19 ` Matthew Garrett
2007-06-01 15:06 ` Henrique de Moraes Holschuh
2007-06-01 15:21 ` Dmitry Torokhov
2007-06-01 14:51 ` Henrique de Moraes Holschuh
2007-06-01 14:19 ` Henrique de Moraes Holschuh
2007-06-20 10:21 ` Helge Hafting
2007-06-06 16:55 ` [PATCH] Input: document the proper usage of EV_KEY and KEY_UNKNOWN (v2) Henrique de Moraes Holschuh
2007-06-29 5:04 ` Dmitry Torokhov [this message]
2007-06-30 18:20 ` Henrique de Moraes Holschuh
[not found] ` <20070531005305.GC6883-ZGHd14iZgfaRjzvQDGKj+xxZW9W5cXbT@public.gmane.org>
2007-05-31 10:37 ` Making KEY_UNKNOWN really useful to userland Richard Hughes
2007-05-31 12:48 ` Henrique de Moraes Holschuh
2007-05-31 14:37 ` Dmitry Torokhov
2007-05-27 3:38 ` [PATCH] ACPI: thinkpad-acpi: allow hotkey to input event map to be modified Dmitry Torokhov
2007-05-27 12:03 ` Henrique de Moraes Holschuh
2007-05-29 3:08 ` Dmitry Torokhov
2007-05-29 12:46 ` Henrique de Moraes Holschuh
[not found] ` <20070529124639.GA12935-ZGHd14iZgfaRjzvQDGKj+xxZW9W5cXbT@public.gmane.org>
2007-05-29 12:55 ` Dmitry Torokhov
2007-05-29 13:06 ` [ibm-acpi-devel] " Henrique de Moraes Holschuh
2007-05-27 18:07 ` Henrique de Moraes Holschuh
2007-05-27 3:35 ` [PATCH] ACPI: thinkpad-acpi: register input device Dmitry Torokhov
2007-05-27 11:53 ` Henrique de Moraes Holschuh
2007-05-26 17:36 ` [RFC] thinkpad-acpi input hotkey events Henrique de Moraes Holschuh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200706290104.53909.dtor@insightbb.com \
--to=dtor@insightbb.com \
--cc=hmh@hmh.eng.br \
--cc=hughsient@gmail.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-input@atrey.karlin.mff.cuni.cz \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.