From: Benjamin Tissoires Date: Wed, 10 Apr 2024 17:19:21 +0000 (+0200) Subject: HID: do not assume HAT Switch logical max < 8 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=65ad580a14e875c2d8c027cf1a2ca03b849ff843;p=linux.git 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 Signed-off-by: Benjamin Tissoires --- diff --git a/include/linux/hid.h b/include/linux/hid.h index b12cb1c8e6821..8e06d89698e67 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 */ };