Go to file
Jason Gerecke c1d6708bf0 HID: wacom: Do not register input devices until after hid_hw_start
If a input device is opened before hid_hw_start is called, events may
not be received from the hardware. In the case of USB-backed devices,
for example, the hid_hw_start function is responsible for filling in
the URB which is submitted when the input device is opened. If a device
is opened prematurely, polling will never start because the device will
not have been in the correct state to send the URB.

Because the wacom driver registers its input devices before calling
hid_hw_start, there is a window of time where a device can be opened
and end up in an inoperable state. Some ARM-based Chromebooks in particular
reliably trigger this bug.

This commit splits the wacom_register_inputs function into two pieces.
One which is responsible for setting up the allocated inputs (and runs
prior to hid_hw_start so that devices are ready for any input events
they may end up receiving) and another which only registers the devices
(and runs after hid_hw_start to ensure devices can be immediately opened
without issue). Note that the functions to initialize the LEDs and remotes
are also moved after hid_hw_start to maintain their own dependency chains.

Fixes: 7704ac9373 ("HID: wacom: implement generic HID handling for pen generic devices")
Cc: stable@vger.kernel.org # v3.18+
Suggested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Tested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
2024-02-06 16:12:07 +01:00
arch fbdev fixes and cleanups for 6.8-rc1: 2024-01-12 14:38:08 -08:00
block for-6.8/block-2024-01-08 2024-01-11 13:58:04 -08:00
certs This update includes the following changes: 2023-11-02 16:15:30 -10:00
crypto crypto: scomp - fix req->dst buffer overflow 2023-12-29 11:25:56 +08:00
Documentation hid-for-linus-2024010801 2024-01-12 14:45:13 -08:00
drivers HID: wacom: Do not register input devices until after hid_hw_start 2024-02-06 16:12:07 +01:00
fs f2fs update for 6.8-rc1 2024-01-11 20:39:15 -08:00
include HID: bpf: use __bpf_kfunc instead of noinline 2024-01-31 10:27:08 +01:00
init header cleanups for 6.8 2024-01-10 16:43:55 -08:00
io_uring for-6.8/io_uring-2024-01-08 2024-01-11 14:19:23 -08:00
ipc shm: Slim down dependencies 2023-12-20 19:26:31 -05:00
kernel dma-mapping updates for Linux 6.8 2024-01-11 13:46:50 -08:00
lib Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
net for-6.8/io_uring-2024-01-08 2024-01-11 14:19:23 -08:00
rust Rust changes for v6.8 2024-01-11 13:05:41 -08:00
samples media updates for v6.8-rc1 2024-01-12 14:29:48 -08:00
scripts Another moderately busy cycle for documentation, including: 2024-01-11 19:46:52 -08:00
security misc cleanups (the part that hadn't been picked by individual fs trees) 2024-01-11 20:23:50 -08:00
sound sound updates for 6.8-rc1 2024-01-12 11:55:28 -08:00
tools selftests/hid: wacom: fix confidence tests 2024-01-18 09:15:38 +01:00
usr usr/Kconfig: fix typos of "its" 2023-12-20 15:02:58 -08:00
virt vfs-6.8.misc 2024-01-08 10:26:08 -08:00
.clang-format clang-format: Update with v6.7-rc4's for_each macro list 2023-12-08 23:54:38 +01:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore kbuild: rpm-pkg: generate kernel.spec in rpmbuild/SPECS/ 2023-10-03 20:49:09 +09:00
.mailmap Networking changes for 6.8. 2024-01-11 10:07:29 -08:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS Another moderately busy cycle for documentation, including: 2024-01-11 19:46:52 -08:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS fbdev fixes and cleanups for 6.8-rc1: 2024-01-12 14:38:08 -08:00
Makefile Quite a lot of kexec work this time around. Many singleton patches in 2024-01-09 11:46:20 -08:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.