From: Corentin Chary <corentin.chary@gmail.com>
To: platform-driver-x86@vger.kernel.org
Cc: Seth Forshee <seth.forshee@canonical.com>,
Corentin Chary <corentin.chary@gmail.com>,
Corentin Chary <corentincj@iksaif.net>,
Matthew Garrett <mjg@redhat.com>,
"open list:ASUS NOTEBOOKS AN..."
<acpi4asus-user@lists.sourceforge.net>,
open list <linux-kernel@vger.kernel.org>
Subject: [PATCH 03/16] eeepc-wmi: Add support for T101MT Home/Express Gate key
Date: Fri, 1 Jul 2011 11:34:28 +0200 [thread overview]
Message-ID: <1309512881-2901-4-git-send-email-corentin.chary@gmail.com> (raw)
In-Reply-To: <1309512881-2901-1-git-send-email-corentin.chary@gmail.com>
From: Seth Forshee <seth.forshee@canonical.com>
This key is different than other hotkeys, having seperate scan
codes for press, release, and hold, so it requires some special
filtering. Press and release events are passed on, and hold events
are ignored since sparse-keymap does not support hardware
autorepeat.
Note that "Home" in the context of this button doesn't mean the
same thing as the usual Home key, and it really isn't clear at
all what is meant by "Home". The manufacurer's description of the
button indicates that it should launch some sort of touch screen
settings interface on short press and apply a desktop rotation on
long press.
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Corentin Chary <corentin.chary@gmail.com>
---
drivers/platform/x86/eeepc-wmi.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/drivers/platform/x86/eeepc-wmi.c b/drivers/platform/x86/eeepc-wmi.c
index 4aa867a..f41a977 100644
--- a/drivers/platform/x86/eeepc-wmi.c
+++ b/drivers/platform/x86/eeepc-wmi.c
@@ -56,6 +56,11 @@ MODULE_PARM_DESC(hotplug_wireless,
"If your laptop needs that, please report to "
"acpi4asus-user@lists.sourceforge.net.");
+/* Values for T101MT "Home" key */
+#define HOME_PRESS 0xe4
+#define HOME_HOLD 0xea
+#define HOME_RELEASE 0xe5
+
static const struct key_entry eeepc_wmi_keymap[] = {
/* Sleep already handled via generic ACPI code */
{ KE_KEY, 0x30, { KEY_VOLUMEUP } },
@@ -71,6 +76,7 @@ static const struct key_entry eeepc_wmi_keymap[] = {
{ KE_KEY, 0xcc, { KEY_SWITCHVIDEOMODE } },
{ KE_KEY, 0xe0, { KEY_PROG1 } }, /* Task Manager */
{ KE_KEY, 0xe1, { KEY_F14 } }, /* Change Resolution */
+ { KE_KEY, HOME_PRESS, { KEY_CONFIG } }, /* Home/Express gate key */
{ KE_KEY, 0xe8, { KEY_SCREENLOCK } },
{ KE_KEY, 0xe9, { KEY_BRIGHTNESS_ZERO } },
{ KE_KEY, 0xeb, { KEY_CAMERA_ZOOMOUT } },
@@ -81,6 +87,25 @@ static const struct key_entry eeepc_wmi_keymap[] = {
{ KE_END, 0},
};
+static void eeepc_wmi_key_filter(struct asus_wmi_driver *asus_wmi, int *code,
+ unsigned int *value, bool *autorelease)
+{
+ switch (*code) {
+ case HOME_PRESS:
+ *value = 1;
+ *autorelease = 0;
+ break;
+ case HOME_HOLD:
+ *code = ASUS_WMI_KEY_IGNORE;
+ break;
+ case HOME_RELEASE:
+ *code = HOME_PRESS;
+ *value = 0;
+ *autorelease = 0;
+ break;
+ }
+}
+
static acpi_status eeepc_wmi_parse_device(acpi_handle handle, u32 level,
void *context, void **retval)
{
@@ -151,6 +176,7 @@ static struct asus_wmi_driver asus_wmi_driver = {
.keymap = eeepc_wmi_keymap,
.input_name = "Eee PC WMI hotkeys",
.input_phys = EEEPC_WMI_FILE "/input0",
+ .key_filter = eeepc_wmi_key_filter,
.probe = eeepc_wmi_probe,
.quirks = eeepc_wmi_quirks,
};
--
1.7.3.4
next prev parent reply other threads:[~2011-07-01 9:34 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-01 9:34 [PATCH 00/16] acpi4asus updates for 3.1 Corentin Chary
2011-07-01 9:34 ` [PATCH 01/16] asus-wmi: fix hwmon/pwm1 Corentin Chary
2011-07-01 9:34 ` [PATCH 02/16] asus-wmi: Add callback for hotkey filtering Corentin Chary
2011-07-01 9:34 ` Corentin Chary [this message]
2011-07-01 9:34 ` [PATCH 04/16] asus-wmi: Enable autorepeat for hotkey input device Corentin Chary
2011-07-01 14:15 ` Matthew Garrett
2011-07-04 7:49 ` Corentin Chary
2011-07-01 9:34 ` [PATCH 05/16] asus-wmi: second part of the version starts at 16 not 8 Corentin Chary
2011-07-01 9:34 ` [PATCH 06/16] asus-wmi: add keyboard backlight support Corentin Chary
2011-07-01 9:34 ` [PATCH 07/16] asus-wmi: fix section mismatch Corentin Chary
2011-07-01 9:34 ` [PATCH 08/16] asus-wmi: set backlight type Corentin Chary
2011-07-01 9:34 ` [PATCH 09/16] asus-wmi: fix keyboard backlight detection Corentin Chary
2011-07-01 9:34 ` [PATCH 10/16] asus-wmi: add some device ids Corentin Chary
2011-07-01 9:34 ` [PATCH 11/16] asus-wmi: add thermal sensor Corentin Chary
2011-07-01 9:34 ` [PATCH 12/16] asus-wmi: check for temp1 presence Corentin Chary
2011-07-01 9:34 ` [PATCH 13/16] asus-wmi: return proper value in store_cpufv() Corentin Chary
2011-07-01 9:34 ` [PATCH 14/16] asus-wmi: add CWAP support and clarify the meaning of WAPF bits Corentin Chary
2011-07-01 9:34 ` [PATCH 15/16] asus-wmi: add gps rfkill support Corentin Chary
2011-07-01 9:34 ` [PATCH 16/16] asus-wmi: add uwb " Corentin Chary
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=1309512881-2901-4-git-send-email-corentin.chary@gmail.com \
--to=corentin.chary@gmail.com \
--cc=acpi4asus-user@lists.sourceforge.net \
--cc=corentincj@iksaif.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg@redhat.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=seth.forshee@canonical.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox