diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-22 12:25:31 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-22 12:25:31 -0400 |
| commit | 71c4c8b7c3bdeccef4f478c643a9ff382ec07241 (patch) | |
| tree | 0653596f04e14976e717398543a958b4567bb8a9 | |
| parent | 3730793d457fed79a6d49bae72996d458c8e4f2d (diff) | |
| parent | 032e46cbf5fb1d768d7dec5631c224e22b4be46f (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: atkbd - add force relese key quirk for Soltech TA12
Input: fix EVIOCGNAME/JSIOCGNAME regression
Input: atkbd - add forced release keys quirk for FSC Amilo Pi 3525
Input: pcspkr - switch driver to dev_pm_ops
Input: xpad - don't resend successfully sent outgoing requests
Input: wistron_btns - recognize Maxdata Pro 7000 notebooks
| -rw-r--r-- | drivers/input/evdev.c | 3 | ||||
| -rw-r--r-- | drivers/input/joydev.c | 2 | ||||
| -rw-r--r-- | drivers/input/joystick/xpad.c | 26 | ||||
| -rw-r--r-- | drivers/input/keyboard/atkbd.c | 32 | ||||
| -rw-r--r-- | drivers/input/misc/pcspkr.c | 8 | ||||
| -rw-r--r-- | drivers/input/misc/wistron_btns.c | 9 |
6 files changed, 62 insertions, 18 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index 114efd8dc8f5..1148140d08a1 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c | |||
| @@ -608,8 +608,7 @@ static long evdev_do_ioctl(struct file *file, unsigned int cmd, | |||
| 608 | p, compat_mode); | 608 | p, compat_mode); |
| 609 | 609 | ||
| 610 | if (_IOC_NR(cmd) == _IOC_NR(EVIOCGNAME(0))) | 610 | if (_IOC_NR(cmd) == _IOC_NR(EVIOCGNAME(0))) |
| 611 | return str_to_user(dev_name(&evdev->dev), | 611 | return str_to_user(dev->name, _IOC_SIZE(cmd), p); |
| 612 | _IOC_SIZE(cmd), p); | ||
| 613 | 612 | ||
| 614 | if (_IOC_NR(cmd) == _IOC_NR(EVIOCGPHYS(0))) | 613 | if (_IOC_NR(cmd) == _IOC_NR(EVIOCGPHYS(0))) |
| 615 | return str_to_user(dev->phys, _IOC_SIZE(cmd), p); | 614 | return str_to_user(dev->phys, _IOC_SIZE(cmd), p); |
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c index 0e12f89276a3..4cfd084fa897 100644 --- a/drivers/input/joydev.c +++ b/drivers/input/joydev.c | |||
| @@ -536,7 +536,7 @@ static int joydev_ioctl_common(struct joydev *joydev, | |||
| 536 | default: | 536 | default: |
| 537 | if ((cmd & ~IOCSIZE_MASK) == JSIOCGNAME(0)) { | 537 | if ((cmd & ~IOCSIZE_MASK) == JSIOCGNAME(0)) { |
| 538 | int len; | 538 | int len; |
| 539 | const char *name = dev_name(&dev->dev); | 539 | const char *name = dev->name; |
| 540 | 540 | ||
| 541 | if (!name) | 541 | if (!name) |
| 542 | return 0; | 542 | return 0; |
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index b868b8d5fbb3..f155ad8cdae7 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c | |||
| @@ -470,20 +470,20 @@ static void xpad_irq_out(struct urb *urb) | |||
| 470 | status = urb->status; | 470 | status = urb->status; |
| 471 | 471 | ||
| 472 | switch (status) { | 472 | switch (status) { |
| 473 | case 0: | 473 | case 0: |
| 474 | /* success */ | 474 | /* success */ |
| 475 | break; | 475 | return; |
| 476 | case -ECONNRESET: | 476 | |
| 477 | case -ENOENT: | 477 | case -ECONNRESET: |
| 478 | case -ESHUTDOWN: | 478 | case -ENOENT: |
| 479 | /* this urb is terminated, clean up */ | 479 | case -ESHUTDOWN: |
| 480 | dbg("%s - urb shutting down with status: %d", | 480 | /* this urb is terminated, clean up */ |
| 481 | __func__, status); | 481 | dbg("%s - urb shutting down with status: %d", __func__, status); |
| 482 | return; | 482 | return; |
| 483 | default: | 483 | |
| 484 | dbg("%s - nonzero urb status received: %d", | 484 | default: |
| 485 | __func__, status); | 485 | dbg("%s - nonzero urb status received: %d", __func__, status); |
| 486 | goto exit; | 486 | goto exit; |
| 487 | } | 487 | } |
| 488 | 488 | ||
| 489 | exit: | 489 | exit: |
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index df3f8aa68115..95fe0452dae4 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c | |||
| @@ -895,6 +895,13 @@ static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = { | |||
| 895 | }; | 895 | }; |
| 896 | 896 | ||
| 897 | /* | 897 | /* |
| 898 | * Amilo Pi 3525 key release for Fn+Volume keys not working | ||
| 899 | */ | ||
| 900 | static unsigned int atkbd_amilo_pi3525_forced_release_keys[] = { | ||
| 901 | 0x20, 0xa0, 0x2e, 0xae, 0x30, 0xb0, -1U | ||
| 902 | }; | ||
| 903 | |||
| 904 | /* | ||
| 898 | * Amilo Xi 3650 key release for light touch bar not working | 905 | * Amilo Xi 3650 key release for light touch bar not working |
| 899 | */ | 906 | */ |
| 900 | static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = { | 907 | static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = { |
| @@ -902,6 +909,13 @@ static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = { | |||
| 902 | }; | 909 | }; |
| 903 | 910 | ||
| 904 | /* | 911 | /* |
| 912 | * Soltech TA12 system with broken key release on volume keys and mute key | ||
| 913 | */ | ||
| 914 | static unsigned int atkdb_soltech_ta12_forced_release_keys[] = { | ||
| 915 | 0xa0, 0xae, 0xb0, -1U | ||
| 916 | }; | ||
| 917 | |||
| 918 | /* | ||
| 905 | * atkbd_set_keycode_table() initializes keyboard's keycode table | 919 | * atkbd_set_keycode_table() initializes keyboard's keycode table |
| 906 | * according to the selected scancode set | 920 | * according to the selected scancode set |
| 907 | */ | 921 | */ |
| @@ -1568,6 +1582,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = { | |||
| 1568 | .driver_data = atkbd_amilo_pa1510_forced_release_keys, | 1582 | .driver_data = atkbd_amilo_pa1510_forced_release_keys, |
| 1569 | }, | 1583 | }, |
| 1570 | { | 1584 | { |
| 1585 | .ident = "Fujitsu Amilo Pi 3525", | ||
| 1586 | .matches = { | ||
| 1587 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 1588 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 3525"), | ||
| 1589 | }, | ||
| 1590 | .callback = atkbd_setup_forced_release, | ||
| 1591 | .driver_data = atkbd_amilo_pi3525_forced_release_keys, | ||
| 1592 | }, | ||
| 1593 | { | ||
| 1571 | .ident = "Fujitsu Amilo Xi 3650", | 1594 | .ident = "Fujitsu Amilo Xi 3650", |
| 1572 | .matches = { | 1595 | .matches = { |
| 1573 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | 1596 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), |
| @@ -1576,6 +1599,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = { | |||
| 1576 | .callback = atkbd_setup_forced_release, | 1599 | .callback = atkbd_setup_forced_release, |
| 1577 | .driver_data = atkbd_amilo_xi3650_forced_release_keys, | 1600 | .driver_data = atkbd_amilo_xi3650_forced_release_keys, |
| 1578 | }, | 1601 | }, |
| 1602 | { | ||
| 1603 | .ident = "Soltech Corporation TA12", | ||
| 1604 | .matches = { | ||
| 1605 | DMI_MATCH(DMI_SYS_VENDOR, "Soltech Corporation"), | ||
| 1606 | DMI_MATCH(DMI_PRODUCT_NAME, "TA12"), | ||
| 1607 | }, | ||
| 1608 | .callback = atkbd_setup_forced_release, | ||
| 1609 | .driver_data = atkdb_soltech_ta12_forced_release_keys, | ||
| 1610 | }, | ||
| 1579 | { } | 1611 | { } |
| 1580 | }; | 1612 | }; |
| 1581 | 1613 | ||
diff --git a/drivers/input/misc/pcspkr.c b/drivers/input/misc/pcspkr.c index 6d67af5387ad..21cb755a54fb 100644 --- a/drivers/input/misc/pcspkr.c +++ b/drivers/input/misc/pcspkr.c | |||
| @@ -114,7 +114,7 @@ static int __devexit pcspkr_remove(struct platform_device *dev) | |||
| 114 | return 0; | 114 | return 0; |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | static int pcspkr_suspend(struct platform_device *dev, pm_message_t state) | 117 | static int pcspkr_suspend(struct device *dev) |
| 118 | { | 118 | { |
| 119 | pcspkr_event(NULL, EV_SND, SND_BELL, 0); | 119 | pcspkr_event(NULL, EV_SND, SND_BELL, 0); |
| 120 | 120 | ||
| @@ -127,14 +127,18 @@ static void pcspkr_shutdown(struct platform_device *dev) | |||
| 127 | pcspkr_event(NULL, EV_SND, SND_BELL, 0); | 127 | pcspkr_event(NULL, EV_SND, SND_BELL, 0); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | static struct dev_pm_ops pcspkr_pm_ops = { | ||
| 131 | .suspend = pcspkr_suspend, | ||
| 132 | }; | ||
| 133 | |||
| 130 | static struct platform_driver pcspkr_platform_driver = { | 134 | static struct platform_driver pcspkr_platform_driver = { |
| 131 | .driver = { | 135 | .driver = { |
| 132 | .name = "pcspkr", | 136 | .name = "pcspkr", |
| 133 | .owner = THIS_MODULE, | 137 | .owner = THIS_MODULE, |
| 138 | .pm = &pcspkr_pm_ops, | ||
| 134 | }, | 139 | }, |
| 135 | .probe = pcspkr_probe, | 140 | .probe = pcspkr_probe, |
| 136 | .remove = __devexit_p(pcspkr_remove), | 141 | .remove = __devexit_p(pcspkr_remove), |
| 137 | .suspend = pcspkr_suspend, | ||
| 138 | .shutdown = pcspkr_shutdown, | 142 | .shutdown = pcspkr_shutdown, |
| 139 | }; | 143 | }; |
| 140 | 144 | ||
diff --git a/drivers/input/misc/wistron_btns.c b/drivers/input/misc/wistron_btns.c index 7c8957dd22c0..26e17a9a22eb 100644 --- a/drivers/input/misc/wistron_btns.c +++ b/drivers/input/misc/wistron_btns.c | |||
| @@ -646,6 +646,15 @@ static struct dmi_system_id dmi_ids[] __initdata = { | |||
| 646 | }, | 646 | }, |
| 647 | { | 647 | { |
| 648 | .callback = dmi_matched, | 648 | .callback = dmi_matched, |
| 649 | .ident = "Maxdata Pro 7000 DX", | ||
| 650 | .matches = { | ||
| 651 | DMI_MATCH(DMI_SYS_VENDOR, "MAXDATA"), | ||
| 652 | DMI_MATCH(DMI_PRODUCT_NAME, "Pro 7000"), | ||
| 653 | }, | ||
| 654 | .driver_data = keymap_fs_amilo_pro_v2000 | ||
| 655 | }, | ||
| 656 | { | ||
| 657 | .callback = dmi_matched, | ||
| 649 | .ident = "Fujitsu N3510", | 658 | .ident = "Fujitsu N3510", |
| 650 | .matches = { | 659 | .matches = { |
| 651 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | 660 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), |
