aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-10-12 06:35:02 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-10-12 06:35:02 -0400
commiteb81bfb224ced3701bcc7b08f309665bf0549252 (patch)
treee8e148c679517b0da74d82660a55444adcd32bc2 /drivers/input
parent0c53b6a5f82a539b59cdd669c4a866238371fa23 (diff)
parentcecf10704899467a787975e3d94a1f0129b9688e (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.c1
-rw-r--r--drivers/input/joystick/xpad.c3
-rw-r--r--drivers/input/misc/uinput.c1
-rw-r--r--drivers/input/mousedev.c1
-rw-r--r--drivers/input/serio/i8042.c29
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