aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRikard Ljungstrand <lrikard@student.chalmers.se>2008-12-19 21:59:20 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2008-12-20 04:56:37 -0500
commit181f63827a7655e84781fe0494189c1fea52816f (patch)
tree1f8025a468c448a35972af9c84b2e42ca9c8db92
parent93b8eef1c098efbea2f1fc0be7e3c681f259a7e7 (diff)
Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop
Add quirk for misbehaving volume buttons on HP Pavilion ZV6100 laptop which are not sending keyrelease events, as reported by Aaron Pickett. Signed-off-by: Rikard Ljungstrand <lrikard@student.chalmers.se> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--drivers/input/keyboard/atkbd.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 379b7ff354ec..fa6ed339d171 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -884,6 +884,23 @@ static void atkbd_inventec_keymap_fixup(struct atkbd *atkbd)
884} 884}
885 885
886/* 886/*
887 * Perform fixup for HP Pavilion ZV6100 laptop that doesn't generate release
888 * for its volume buttons
889 */
890static void atkbd_hp_zv6100_keymap_fixup(struct atkbd *atkbd)
891{
892 const unsigned int forced_release_keys[] = {
893 0xae, 0xb0,
894 };
895 int i;
896
897 if (atkbd->set == 2)
898 for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++)
899 __set_bit(forced_release_keys[i],
900 atkbd->force_release_mask);
901}
902
903/*
887 * atkbd_set_keycode_table() initializes keyboard's keycode table 904 * atkbd_set_keycode_table() initializes keyboard's keycode table
888 * according to the selected scancode set 905 * according to the selected scancode set
889 */ 906 */
@@ -1485,6 +1502,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1485 .driver_data = atkbd_hp_keymap_fixup, 1502 .driver_data = atkbd_hp_keymap_fixup,
1486 }, 1503 },
1487 { 1504 {
1505 .ident = "HP Pavilion ZV6100",
1506 .matches = {
1507 DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
1508 DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ZV6100"),
1509 },
1510 .callback = atkbd_setup_fixup,
1511 .driver_data = atkbd_hp_zv6100_keymap_fixup,
1512 },
1513 {
1488 .ident = "Inventec Symphony", 1514 .ident = "Inventec Symphony",
1489 .matches = { 1515 .matches = {
1490 DMI_MATCH(DMI_SYS_VENDOR, "INVENTEC"), 1516 DMI_MATCH(DMI_SYS_VENDOR, "INVENTEC"),