]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
HID: pidff: Separate check for infinite duration
authorTomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Wed, 13 Aug 2025 20:09:59 +0000 (22:09 +0200)
committerJiri Kosina <jkosina@suse.com>
Fri, 15 Aug 2025 13:58:09 +0000 (15:58 +0200)
It will be used in a few more places so this makes sure it will always
work the same.

Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/usbhid/hid-pidff.c

index 32d42792c95afed50a3f9a6808905c23813f6752..534fb28f6e5521425207ed8822eb32742e02f113 100644 (file)
@@ -242,6 +242,11 @@ static int pidff_is_effect_conditional(struct ff_effect *effect)
               effect->type == FF_FRICTION;
 }
 
+static int pidff_is_duration_infinite(u16 duration)
+{
+       return duration == FF_INFINITE || duration == PID_INFINITE;
+}
+
 /*
  * Get PID effect index from FF effect type.
  * Return 0 if invalid.
@@ -374,12 +379,8 @@ static void pidff_set_time(struct pidff_usage *usage, u16 time)
 
 static void pidff_set_duration(struct pidff_usage *usage, u16 duration)
 {
-       /* Infinite value conversion from Linux API -> PID */
-       if (duration == FF_INFINITE)
-               duration = PID_INFINITE;
-
        /* PID defines INFINITE as the max possible value for duration field */
-       if (duration == PID_INFINITE) {
+       if (pidff_is_duration_infinite(duration)) {
                usage->value[0] = (1U << usage->field->report_size) - 1;
                return;
        }