aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/keyboard/atkbd.c51
1 files changed, 14 insertions, 37 deletions
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index de520386f13f..271c0b7045c3 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -887,29 +887,6 @@ static unsigned int atkbd_hp_forced_release_keys[] = {
887}; 887};
888 888
889/* 889/*
890 * Inventec system with broken key release on volume keys
891 */
892static unsigned int atkbd_inventec_forced_release_keys[] = {
893 0xae, 0xb0, -1U
894};
895
896/*
897 * Perform fixup for HP Pavilion ZV6100 laptop that doesn't generate release
898 * for its volume buttons
899 */
900static unsigned int atkbd_hp_zv6100_forced_release_keys[] = {
901 0xae, 0xb0, -1U
902};
903
904/*
905 * Perform fixup for HP (Compaq) Presario R4000 R4100 R4200 that don't generate
906 * release for their volume buttons
907 */
908static unsigned int atkbd_hp_r4000_forced_release_keys[] = {
909 0xae, 0xb0, -1U
910};
911
912/*
913 * Samsung NC10,NC20 with Fn+F? key release not working 890 * Samsung NC10,NC20 with Fn+F? key release not working
914 */ 891 */
915static unsigned int atkbd_samsung_forced_release_keys[] = { 892static unsigned int atkbd_samsung_forced_release_keys[] = {
@@ -917,14 +894,6 @@ static unsigned int atkbd_samsung_forced_release_keys[] = {
917}; 894};
918 895
919/* 896/*
920 * The volume up and volume down special keys on a Fujitsu Amilo PA 1510 laptop
921 * do not generate release events so we have to do it ourselves.
922 */
923static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = {
924 0xb0, 0xae, -1U
925};
926
927/*
928 * Amilo Pi 3525 key release for Fn+Volume keys not working 897 * Amilo Pi 3525 key release for Fn+Volume keys not working
929 */ 898 */
930static unsigned int atkbd_amilo_pi3525_forced_release_keys[] = { 899static unsigned int atkbd_amilo_pi3525_forced_release_keys[] = {
@@ -946,6 +915,14 @@ static unsigned int atkdb_soltech_ta12_forced_release_keys[] = {
946}; 915};
947 916
948/* 917/*
918 * Many notebooks don't send key release event for volume up/down
919 * keys, with key list below common among them
920 */
921static unsigned int atkbd_volume_forced_release_keys[] = {
922 0xae, 0xb0, -1U
923};
924
925/*
949 * atkbd_set_keycode_table() initializes keyboard's keycode table 926 * atkbd_set_keycode_table() initializes keyboard's keycode table
950 * according to the selected scancode set 927 * according to the selected scancode set
951 */ 928 */
@@ -1585,7 +1562,7 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1585 DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ZV6100"), 1562 DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ZV6100"),
1586 }, 1563 },
1587 .callback = atkbd_setup_forced_release, 1564 .callback = atkbd_setup_forced_release,
1588 .driver_data = atkbd_hp_zv6100_forced_release_keys, 1565 .driver_data = atkbd_volume_forced_release_keys,
1589 }, 1566 },
1590 { 1567 {
1591 .ident = "HP Presario R4000", 1568 .ident = "HP Presario R4000",
@@ -1594,7 +1571,7 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1594 DMI_MATCH(DMI_PRODUCT_NAME, "Presario R4000"), 1571 DMI_MATCH(DMI_PRODUCT_NAME, "Presario R4000"),
1595 }, 1572 },
1596 .callback = atkbd_setup_forced_release, 1573 .callback = atkbd_setup_forced_release,
1597 .driver_data = atkbd_hp_r4000_forced_release_keys, 1574 .driver_data = atkbd_volume_forced_release_keys,
1598 }, 1575 },
1599 { 1576 {
1600 .ident = "HP Presario R4100", 1577 .ident = "HP Presario R4100",
@@ -1603,7 +1580,7 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1603 DMI_MATCH(DMI_PRODUCT_NAME, "Presario R4100"), 1580 DMI_MATCH(DMI_PRODUCT_NAME, "Presario R4100"),
1604 }, 1581 },
1605 .callback = atkbd_setup_forced_release, 1582 .callback = atkbd_setup_forced_release,
1606 .driver_data = atkbd_hp_r4000_forced_release_keys, 1583 .driver_data = atkbd_volume_forced_release_keys,
1607 }, 1584 },
1608 { 1585 {
1609 .ident = "HP Presario R4200", 1586 .ident = "HP Presario R4200",
@@ -1612,7 +1589,7 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1612 DMI_MATCH(DMI_PRODUCT_NAME, "Presario R4200"), 1589 DMI_MATCH(DMI_PRODUCT_NAME, "Presario R4200"),
1613 }, 1590 },
1614 .callback = atkbd_setup_forced_release, 1591 .callback = atkbd_setup_forced_release,
1615 .driver_data = atkbd_hp_r4000_forced_release_keys, 1592 .driver_data = atkbd_volume_forced_release_keys,
1616 }, 1593 },
1617 { 1594 {
1618 .ident = "Inventec Symphony", 1595 .ident = "Inventec Symphony",
@@ -1621,7 +1598,7 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1621 DMI_MATCH(DMI_PRODUCT_NAME, "SYMPHONY 6.0/7.0"), 1598 DMI_MATCH(DMI_PRODUCT_NAME, "SYMPHONY 6.0/7.0"),
1622 }, 1599 },
1623 .callback = atkbd_setup_forced_release, 1600 .callback = atkbd_setup_forced_release,
1624 .driver_data = atkbd_inventec_forced_release_keys, 1601 .driver_data = atkbd_volume_forced_release_keys,
1625 }, 1602 },
1626 { 1603 {
1627 .ident = "Samsung NC10", 1604 .ident = "Samsung NC10",
@@ -1657,7 +1634,7 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1657 DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pa 1510"), 1634 DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pa 1510"),
1658 }, 1635 },
1659 .callback = atkbd_setup_forced_release, 1636 .callback = atkbd_setup_forced_release,
1660 .driver_data = atkbd_amilo_pa1510_forced_release_keys, 1637 .driver_data = atkbd_volume_forced_release_keys,
1661 }, 1638 },
1662 { 1639 {
1663 .ident = "Fujitsu Amilo Pi 3525", 1640 .ident = "Fujitsu Amilo Pi 3525",