Input: i8042 - add deferred probe support
authorTakashi Iwai <tiwai@suse.de>
Mon, 29 Nov 2021 07:21:41 +0000 (23:21 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 29 Nov 2021 07:59:33 +0000 (23:59 -0800)
commit9222ba68c3f4065f6364b99cc641b6b019ef2d42
tree9a453a327b1accee10cceb0ddd52b4dfef40b974
parentefe6f16c6faf724882ddaba2eda8830a87bcc2b2
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>
Documentation/admin-guide/kernel-parameters.txt
drivers/input/serio/i8042-x86ia64io.h
drivers/input/serio/i8042.c