[PATCH] Wistron button support for TravelMate 610
From: Eric Piel
Date: Mon Mar 05 2007 - 18:06:44 EST
Hello,
Here is a patch adding support to wistron button for Acer TravelMate
610. This is tested and works fine with the exception of the leds which
cannot be controlled (yet, that would require writing a led interface
for them when I've got time ;-) )
I'm sending just this one for now (as I can test it) but if you like it,
I would like to try to add all the database of keyboards available in
acerhk (that Olaf has written).
See you,
Eric
---
From: Eric Piel <eric.piel@xxxxxxxxxxxxxxxx>
TM610 support for wistron_btns.
Adds support for Acer TravelMate 610 to wistron_btns, coming from info
of acer_hk. All special keys are detected, but the 2 leds are not
handled (yet).
Signed-off-by: Eric Piel <eric.piel@xxxxxxxxxxxxxxxx>
---
diff -urpN -X linux-2.6.21/Documentation/dontdiff linux-2.6.21-rc2.bak/drivers/input/misc/wistron_btns.c linux-2.6.21/drivers/input/misc/wistron_btns.c
--- linux-2.6.21-rc2.bak/drivers/input/misc/wistron_btns.c 2007-03-03 12:33:41.000000000 +0100
+++ linux-2.6.21/drivers/input/misc/wistron_btns.c 2007-03-03 12:35:53.000000000 +0100
@@ -324,6 +324,21 @@ static struct key_entry keymap_acer_trav
{ KE_END, 0 }
};
+/* Wifi subsystem only activate the led. Therefore we need to pass
+ * wifi event as a normal key, then userspace can really change the wifi state.
+ * TODO we need to export led state to userspace (wifi and mail) */
+static struct key_entry keymap_acer_travelmate_610[] = {
+ { KE_KEY, 0x01, KEY_HELP },
+ { KE_KEY, 0x02, KEY_CONFIG },
+ { KE_KEY, 0x11, KEY_PROG1 },
+ { KE_KEY, 0x12, KEY_PROG2 },
+ { KE_KEY, 0x13, KEY_PROG3 },
+ { KE_KEY, 0x14, KEY_MAIL },
+ { KE_KEY, 0x15, KEY_WWW },
+ { KE_KEY, 0x40, KEY_XFER }, /* Wifi */
+ { KE_END, 0 }
+};
+
static struct key_entry keymap_aopen_1559as[] = {
{ KE_KEY, 0x01, KEY_HELP },
{ KE_KEY, 0x06, KEY_PROG3 },
@@ -408,6 +423,15 @@ static struct dmi_system_id dmi_ids[] __
},
{
.callback = dmi_matched,
+ .ident = "Acer TravelMate 610",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ACER"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 610"),
+ },
+ .driver_data = keymap_acer_travelmate_610
+ },
+ {
+ .callback = dmi_matched,
.ident = "AOpen 1559AS",
.matches = {
DMI_MATCH(DMI_PRODUCT_NAME, "E2U"),