linux/drivers/input/serio
Danilo Krummrich 81b9fd6941 Input: ps2-gpio - don't send rx data before the stop bit
Sending the data before processing the stop bit from the device already
saves the data of the current xfer in case the stop bit is missed.

However, when TX xfers are enabled this introduces a race condition when
a peripheral driver using the bus immediately requests a TX xfer from IRQ
context.

Therefore the data must be send after receiving the stop bit, although
it is possible the data is lost when missing the stop bit.

Signed-off-by: Danilo Krummrich <danilokrummrich@dk-develop.de>
Link: https://lore.kernel.org/r/20220215160208.34826-5-danilokrummrich@dk-develop.de
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2022-02-15 17:25:39 -08:00
..
altera_ps2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ambakmi.c amba: Make the remove callback return void 2021-02-02 14:25:50 +01:00
ams_delta_serio.c Revert "Input: serio - make write method mandatory" 2021-07-20 21:48:35 -07:00
apbps2.c Input: apbps2 - remove useless variable 2021-04-10 00:45:48 -07:00
arc_ps2.c Input: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07:00
ct82c710.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
gscps2.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
hil_mlc.c hil/parisc: Disable HIL driver when it gets stuck 2020-10-22 22:44:35 +02:00
hp_sdc_mlc.c hil/parisc: Disable HIL driver when it gets stuck 2020-10-22 22:44:35 +02:00
hp_sdc.c maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault 2020-06-17 10:57:41 -07:00
hyperv-keyboard.c Input: hyperv-keyboard: Use VMBUS_RING_SIZE() for ringbuffer sizes 2020-09-28 08:57:20 +00:00
i8042-io.h input: i8042 - Remove special Cayman handling 2020-08-14 22:05:06 -04:00
i8042-ip22io.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
i8042-jazzio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
i8042-snirm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
i8042-sparcio.h Input: i8042 - rework DT node name comparisons 2019-02-18 12:11:04 -08:00
i8042-x86ia64io.h Input: i8042 - enable deferred probe quirk for ASUS UM325UA 2021-12-06 23:18:22 -08:00
i8042.c Input: i8042 - add deferred probe support 2021-11-28 23:59:33 -08:00
i8042.h input: i8042: remove support for 8042-unicore32io 2020-07-01 12:10:47 +03:00
ioc3kbd.c Input: add IOC3 serio driver 2020-01-22 10:05:53 -08:00
Kconfig Input: add missing dependencies on CONFIG_HAS_IOMEM 2021-02-19 11:02:18 -08:00
libps2.c Input: libps2 - fix fall-through warnings for Clang 2020-11-22 22:16:23 -08:00
maceps2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Makefile Input: add IOC3 serio driver 2020-01-22 10:05:53 -08:00
olpc_apsp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
parkbd.c Input: parkbd - switch to use module_parport_driver() 2021-07-19 14:59:36 -07:00
pcips2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 178 2019-05-30 11:29:19 -07:00
ps2-gpio.c Input: ps2-gpio - don't send rx data before the stop bit 2022-02-15 17:25:39 -08:00
ps2mult.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
q40kbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
rpckbd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
sa1111ps2.c ARM: 9048/1: sa1111: make sa1111 bus's remove callback return void 2021-02-01 19:42:13 +00:00
serio_raw.c treewide: Remove uninitialized_var() usage 2020-07-16 12:35:15 -07:00
serio.c bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
serport.c tty: make tty_ldisc_ops::hangup return void 2021-09-22 16:59:13 +02:00
sun4i-ps2.c Input: sun4i-ps2 - fix handling of platform_get_irq() error 2020-09-16 10:42:16 -07:00
userio.c
xilinx_ps2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 151 2019-05-30 11:26:28 -07:00