diff options
author | Benjamin Tissoires <bentiss@kernel.org> | 2024-04-10 20:19:21 +0300 |
---|---|---|
committer | Benjamin Tissoires <bentiss@kernel.org> | 2024-05-07 16:38:36 +0300 |
commit | 65ad580a14e875c2d8c027cf1a2ca03b849ff843 (patch) | |
tree | 426b9017f1eec4f1b019e521777a08b93393e622 | |
parent | b912cf042072e12e93faa874265b30cc0aa521b9 (diff) | |
download | linux-65ad580a14e875c2d8c027cf1a2ca03b849ff843.tar.xz |
HID: do not assume HAT Switch logical max < 8
Turns out that the code can handle a greater range, but the data stored
can not. This is problematic on the Raptor Mach 2 joystick which
logical max is 239. The kernel interprets it as `-15` and thus ignores
the Hat Switch handling.
Link: https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/issues/17
Link: https://lore.kernel.org/r/20240410-bpf_sources-v1-1-a8bf16033ef8@kernel.org
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
-rw-r--r-- | include/linux/hid.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h index b12cb1c8e682..8e06d89698e6 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -474,9 +474,9 @@ struct hid_usage { __s8 wheel_factor; /* 120/resolution_multiplier */ __u16 code; /* input driver code */ __u8 type; /* input driver type */ - __s8 hat_min; /* hat switch fun */ - __s8 hat_max; /* ditto */ - __s8 hat_dir; /* ditto */ + __s16 hat_min; /* hat switch fun */ + __s16 hat_max; /* ditto */ + __s16 hat_dir; /* ditto */ __s16 wheel_accumulated; /* hi-res wheel */ }; |