summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>2025-02-26 01:30:02 +0300
committerJiri Kosina <jkosina@suse.com>2025-03-04 23:42:44 +0300
commit1a575044d516972a1d036d54c0180b9085e21dc6 (patch)
tree244e2ff74a6c8a89103be573200729047846072f
parent0c6673e3d17b258b8c5c7331d28bf6c49f25ed30 (diff)
downloadlinux-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.c3
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;
}