[PATCH 1/1] UBUNTU: SAUCE: hotkey quirks for various Zeptro Znote and Fujitsu Amilo laptops

Andy Whitcroft apw at canonical.com
Wed Mar 18 11:55:14 UTC 2009


OriginalAuthor: Marius Wenderoth <scale87 at web.de>
Bug: #330259

Add model specific quirks for the hotkeys for the laptops below:

	Zepto Znote 6615WD
	Zepto Znote 6625WD
	FUJITSU SIEMENS AMILO Xi 2428

In each case the volume keys and the mute key do not correctly produce
key release events.  Quirk these to force a key release.

Signed-off-by: Marius Wenderoth <scale87 at web.de>
Signed-off-by: Andy Whitcroft <apw at canonical.com>
---
 drivers/input/keyboard/atkbd.c |   44 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 3f3543d..80d7bd4 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -917,6 +917,22 @@ static void atkbd_samsung_keymap_fixup(struct atkbd *atkbd)
 }
 
 /*
+ * Fujitsu Siemens system with broken key release on volume keys and mute key
+ */
+static void atkbd_amilo_xi_2428_keymap_fixup(struct atkbd *atkbd)
+{
+	const unsigned int forced_release_keys[] = {
+		0xa0, 0xae, 0xb0,
+	};
+	int i;
+
+	if (atkbd->set == 2)
+		for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++)
+			__set_bit(forced_release_keys[i],
+				  atkbd->force_release_mask);
+}
+
+/*
  * atkbd_set_keycode_table() initializes keyboard's keycode table
  * according to the selected scancode set
  */
@@ -1563,6 +1579,34 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
 		.callback = atkbd_setup_fixup,
 		.driver_data = atkbd_samsung_keymap_fixup,
 	},
+	{
+		.ident = "Znote 6615WD",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Zepto"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Znote 6615WD"),
+		},
+		.callback = atkbd_setup_fixup,
+		.driver_data = atkbd_inventec_keymap_fixup,
+	},
+	{
+		.ident = "Znote 6625WD",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Zepto"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Znote"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "6625WD"),
+		},
+		.callback = atkbd_setup_fixup,
+		.driver_data = atkbd_inventec_keymap_fixup,
+	},
+	{
+		.ident = "AMILO Xi 2428",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 2428"),
+		},
+		.callback = atkbd_setup_fixup,
+		.driver_data = atkbd_amilo_xi_2428_keymap_fixup,
+	},
 	{ }
 };
 
-- 
1.6.1.2.419.g0d87e





More information about the kernel-team mailing list