diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-10-12 06:35:02 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-10-12 06:35:02 -0400 |
commit | eb81bfb224ced3701bcc7b08f309665bf0549252 (patch) | |
tree | e8e148c679517b0da74d82660a55444adcd32bc2 /drivers/input | |
parent | 0c53b6a5f82a539b59cdd669c4a866238371fa23 (diff) | |
parent | cecf10704899467a787975e3d94a1f0129b9688e (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Dmitry writes:
"Input updates for v4.19-rc7
- we added a few scheduling points into various input interfaces to
ensure that large writes will not cause RCU stalls
- fixed configuring PS/2 keyboards as wakeup devices on newer
platforms
- added a new Xbox gamepad ID."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: uinput - add a schedule point in uinput_inject_events()
Input: evdev - add a schedule point in evdev_write()
Input: mousedev - add a schedule point in mousedev_write()
Input: i8042 - enable keyboard wakeups by default when s2idle is used
Input: xpad - add support for Xbox1 PDP Camo series gamepad
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/evdev.c | 1 | ||||
-rw-r--r-- | drivers/input/joystick/xpad.c | 3 | ||||
-rw-r--r-- | drivers/input/misc/uinput.c | 1 | ||||
-rw-r--r-- | drivers/input/mousedev.c | 1 | ||||
-rw-r--r-- | drivers/input/serio/i8042.c | 29 |
5 files changed, 26 insertions, 9 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index 370206f987f9..f48369d6f3a0 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c | |||
@@ -564,6 +564,7 @@ static ssize_t evdev_write(struct file *file, const char __user *buffer, | |||
564 | 564 | ||
565 | input_inject_event(&evdev->handle, | 565 | input_inject_event(&evdev->handle, |
566 | event.type, event.code, event.value); | 566 | event.type, event.code, event.value); |
567 | cond_resched(); | ||
567 | } | 568 | } |
568 | 569 | ||
569 | out: | 570 | out: |
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index cd620e009bad..d4b9db487b16 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c | |||
@@ -231,6 +231,7 @@ static const struct xpad_device { | |||
231 | { 0x0e6f, 0x0246, "Rock Candy Gamepad for Xbox One 2015", 0, XTYPE_XBOXONE }, | 231 | { 0x0e6f, 0x0246, "Rock Candy Gamepad for Xbox One 2015", 0, XTYPE_XBOXONE }, |
232 | { 0x0e6f, 0x02ab, "PDP Controller for Xbox One", 0, XTYPE_XBOXONE }, | 232 | { 0x0e6f, 0x02ab, "PDP Controller for Xbox One", 0, XTYPE_XBOXONE }, |
233 | { 0x0e6f, 0x02a4, "PDP Wired Controller for Xbox One - Stealth Series", 0, XTYPE_XBOXONE }, | 233 | { 0x0e6f, 0x02a4, "PDP Wired Controller for Xbox One - Stealth Series", 0, XTYPE_XBOXONE }, |
234 | { 0x0e6f, 0x02a6, "PDP Wired Controller for Xbox One - Camo Series", 0, XTYPE_XBOXONE }, | ||
234 | { 0x0e6f, 0x0301, "Logic3 Controller", 0, XTYPE_XBOX360 }, | 235 | { 0x0e6f, 0x0301, "Logic3 Controller", 0, XTYPE_XBOX360 }, |
235 | { 0x0e6f, 0x0346, "Rock Candy Gamepad for Xbox One 2016", 0, XTYPE_XBOXONE }, | 236 | { 0x0e6f, 0x0346, "Rock Candy Gamepad for Xbox One 2016", 0, XTYPE_XBOXONE }, |
236 | { 0x0e6f, 0x0401, "Logic3 Controller", 0, XTYPE_XBOX360 }, | 237 | { 0x0e6f, 0x0401, "Logic3 Controller", 0, XTYPE_XBOX360 }, |
@@ -530,6 +531,8 @@ static const struct xboxone_init_packet xboxone_init_packets[] = { | |||
530 | XBOXONE_INIT_PKT(0x0e6f, 0x02ab, xboxone_pdp_init2), | 531 | XBOXONE_INIT_PKT(0x0e6f, 0x02ab, xboxone_pdp_init2), |
531 | XBOXONE_INIT_PKT(0x0e6f, 0x02a4, xboxone_pdp_init1), | 532 | XBOXONE_INIT_PKT(0x0e6f, 0x02a4, xboxone_pdp_init1), |
532 | XBOXONE_INIT_PKT(0x0e6f, 0x02a4, xboxone_pdp_init2), | 533 | XBOXONE_INIT_PKT(0x0e6f, 0x02a4, xboxone_pdp_init2), |
534 | XBOXONE_INIT_PKT(0x0e6f, 0x02a6, xboxone_pdp_init1), | ||
535 | XBOXONE_INIT_PKT(0x0e6f, 0x02a6, xboxone_pdp_init2), | ||
533 | XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init), | 536 | XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init), |
534 | XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init), | 537 | XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init), |
535 | XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init), | 538 | XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init), |
diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c index eb14ddf69346..8ec483e8688b 100644 --- a/drivers/input/misc/uinput.c +++ b/drivers/input/misc/uinput.c | |||
@@ -598,6 +598,7 @@ static ssize_t uinput_inject_events(struct uinput_device *udev, | |||
598 | 598 | ||
599 | input_event(udev->dev, ev.type, ev.code, ev.value); | 599 | input_event(udev->dev, ev.type, ev.code, ev.value); |
600 | bytes += input_event_size(); | 600 | bytes += input_event_size(); |
601 | cond_resched(); | ||
601 | } | 602 | } |
602 | 603 | ||
603 | return bytes; | 604 | return bytes; |
diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c index e08228061bcd..412fa71245af 100644 --- a/drivers/input/mousedev.c +++ b/drivers/input/mousedev.c | |||
@@ -707,6 +707,7 @@ static ssize_t mousedev_write(struct file *file, const char __user *buffer, | |||
707 | mousedev_generate_response(client, c); | 707 | mousedev_generate_response(client, c); |
708 | 708 | ||
709 | spin_unlock_irq(&client->packet_lock); | 709 | spin_unlock_irq(&client->packet_lock); |
710 | cond_resched(); | ||
710 | } | 711 | } |
711 | 712 | ||
712 | kill_fasync(&client->fasync, SIGIO, POLL_IN); | 713 | kill_fasync(&client->fasync, SIGIO, POLL_IN); |
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index b8bc71569349..95a78ccbd847 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c | |||
@@ -1395,15 +1395,26 @@ static void __init i8042_register_ports(void) | |||
1395 | for (i = 0; i < I8042_NUM_PORTS; i++) { | 1395 | for (i = 0; i < I8042_NUM_PORTS; i++) { |
1396 | struct serio *serio = i8042_ports[i].serio; | 1396 | struct serio *serio = i8042_ports[i].serio; |
1397 | 1397 | ||
1398 | if (serio) { | 1398 | if (!serio) |
1399 | printk(KERN_INFO "serio: %s at %#lx,%#lx irq %d\n", | 1399 | continue; |
1400 | serio->name, | 1400 | |
1401 | (unsigned long) I8042_DATA_REG, | 1401 | printk(KERN_INFO "serio: %s at %#lx,%#lx irq %d\n", |
1402 | (unsigned long) I8042_COMMAND_REG, | 1402 | serio->name, |
1403 | i8042_ports[i].irq); | 1403 | (unsigned long) I8042_DATA_REG, |
1404 | serio_register_port(serio); | 1404 | (unsigned long) I8042_COMMAND_REG, |
1405 | device_set_wakeup_capable(&serio->dev, true); | 1405 | i8042_ports[i].irq); |
1406 | } | 1406 | serio_register_port(serio); |
1407 | device_set_wakeup_capable(&serio->dev, true); | ||
1408 | |||
1409 | /* | ||
1410 | * On platforms using suspend-to-idle, allow the keyboard to | ||
1411 | * wake up the system from sleep by enabling keyboard wakeups | ||
1412 | * by default. This is consistent with keyboard wakeup | ||
1413 | * behavior on many platforms using suspend-to-RAM (ACPI S3) | ||
1414 | * by default. | ||
1415 | */ | ||
1416 | if (pm_suspend_via_s2idle() && i == I8042_KBD_PORT_NO) | ||
1417 | device_set_wakeup_enable(&serio->dev, true); | ||
1407 | } | 1418 | } |
1408 | } | 1419 | } |
1409 | 1420 | ||