diff options
author | Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com> | 2025-02-26 01:30:02 +0300 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.com> | 2025-03-04 23:42:44 +0300 |
commit | 1a575044d516972a1d036d54c0180b9085e21dc6 (patch) | |
tree | 244e2ff74a6c8a89103be573200729047846072f | |
parent | 0c6673e3d17b258b8c5c7331d28bf6c49f25ed30 (diff) | |
download | linux-1a575044d516972a1d036d54c0180b9085e21dc6.tar.xz |
HID: pidff: Compute INFINITE value instead of using hardcoded 0xffff
As per USB PID standard:
INFINITE - Referrers to the maximum value of a range. i.e. if in an 8
bit unsigned field the value of 255 would indicate INFINITE.
Detecting 0xffff (U16_MAX) is still important as we MIGHT get this value
as infinite from some native software as 0 was never actually defined
in Linux' FF api as the infinite value. I'm working on it though.
Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
-rw-r--r-- | drivers/hid/usbhid/hid-pidff.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hid/usbhid/hid-pidff.c b/drivers/hid/usbhid/hid-pidff.c index 74b033a4ac1b..a614438e43bd 100644 --- a/drivers/hid/usbhid/hid-pidff.c +++ b/drivers/hid/usbhid/hid-pidff.c @@ -283,8 +283,9 @@ static void pidff_set_duration(struct pidff_usage *usage, u16 duration) if (duration == FF_INFINITE) duration = PID_INFINITE; + /* PID defines INFINITE as the max possible value for duration field */ if (duration == PID_INFINITE) { - usage->value[0] = PID_INFINITE; + usage->value[0] = (1U << usage->field->report_size) - 1; return; } |