linux/drivers/input/serio
Takashi Iwai 9222ba68c3 Input: i8042 - add deferred probe support
We've got a bug report about the non-working keyboard on ASUS ZenBook
UX425UA.  It seems that the PS/2 device isn't ready immediately at
boot but takes some seconds to get ready.  Until now, the only
workaround is to defer the probe, but it's available only when the
driver is a module.  However, many distros, including openSUSE as in
the original report, build the PS/2 input drivers into kernel, hence
it won't work easily.

This patch adds the support for the deferred probe for i8042 stuff as
a workaround of the problem above.  When the deferred probe mode is
enabled and the device couldn't be probed, it'll be repeated with the
standard deferred probe mechanism.

The deferred probe mode is enabled either via the new option
i8042.probe_defer or via the quirk table entry.  As of this patch, the
quirk table contains only ASUS ZenBook UX425UA.

The deferred probe part is based on Fabio's initial work.

BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1190256
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Tested-by: Samuel Čavoj <samuel@cavoj.net>
Link: https://lore.kernel.org/r/20211117063757.11380-1-tiwai@suse.de

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2021-11-28 23:59:33 -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 remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01: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 - add deferred probe support 2021-11-28 23:59:33 -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: remove dev_err() usage after platform_get_irq() 2019-08-14 10:49:01 -07: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 Revert "Input: serio - make write method mandatory" 2021-07-20 21:48:35 -07:00
serport.c tty: convert tty_ldisc_ops 'read()' function to take a kernel pointer 2021-01-20 16:48:47 -08:00
sun4i-ps2.c Input: sun4i-ps2 - fix handling of platform_get_irq() error 2020-09-16 10:42:16 -07:00
userio.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
xilinx_ps2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 151 2019-05-30 11:26:28 -07:00