[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"),