From c748c6bf0c92f82e6f9b55550f4c1a4340312ba6 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 11 Nov 2008 09:40:42 -0500 Subject: [PATCH] --- yaml --- r: 119335 b: refs/heads/master c: a8215b81cc31cf267506bc6a4a4bfe93f4ca1652 h: refs/heads/master i: 119333: 65bdd2ae9b681bf7b3cc48496a7d859a1d3c8054 119331: 43965c063c64444858156b8e797cef3881f239a0 119327: 4e77d53e17bd023901027ff92366a7c5dc19307a v: v3 --- [refs] | 2 +- trunk/drivers/input/keyboard/atkbd.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 440cd76c51fe..4357c4b07995 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 786b11cc0f505e44c29f778fd329dafafafed76c +refs/heads/master: a8215b81cc31cf267506bc6a4a4bfe93f4ca1652 diff --git a/trunk/drivers/input/keyboard/atkbd.c b/trunk/drivers/input/keyboard/atkbd.c index 22016ca15351..c93b9b4ff03a 100644 --- a/trunk/drivers/input/keyboard/atkbd.c +++ b/trunk/drivers/input/keyboard/atkbd.c @@ -867,6 +867,22 @@ static void atkbd_hp_keymap_fixup(struct atkbd *atkbd) atkbd->force_release_mask); } +/* + * Inventec system with broken key release on volume keys + */ +static void atkbd_inventec_keymap_fixup(struct atkbd *atkbd) +{ + const unsigned int forced_release_keys[] = { + 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 @@ -1468,6 +1484,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = { .callback = atkbd_setup_fixup, .driver_data = atkbd_hp_keymap_fixup, }, + { + .ident = "Inventec Symphony", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "INVENTEC"), + DMI_MATCH(DMI_PRODUCT_NAME, "SYMPHONY 6.0/7.0"), + }, + .callback = atkbd_setup_fixup, + .driver_data = atkbd_inventec_keymap_fixup, + }, { } };