[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