]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
HID: pidff: Simplify pidff_upload_effect function
authorTomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Sat, 1 Feb 2025 11:38:58 +0000 (12:38 +0100)
committerJiri Kosina <jkosina@suse.com>
Mon, 3 Feb 2025 14:17:02 +0000 (15:17 +0100)
Merge a bit of code that reqeusts conditional effects upload.
Makes it clear, that effect handling should be identical for
SPRING, DAMPER, INERTIA and FRICTION.

Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Reviewed-by: Michał Kopeć <michal@nozomi.space>
Reviewed-by: Paul Dino Jones <paul@spacefreak18.xyz>
Tested-by: Paul Dino Jones <paul@spacefreak18.xyz>
Tested-by: Cristóferson Bueno <cbueno81@gmail.com>
Tested-by: Pablo Cisneros <patchkez@protonmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/usbhid/hid-pidff.c

index 7db63d686c621878e254b0a75b1c4465b4b4673e..a8698593e432e779e3cfc801e7756561bd19a378 100644 (file)
@@ -770,48 +770,26 @@ static int pidff_upload_effect(struct input_dev *dev, struct ff_effect *effect,
                break;
 
        case FF_SPRING:
-               if (!old) {
-                       error = pidff_request_effect_upload(pidff,
-                                       pidff->type_id[PID_SPRING]);
-                       if (error)
-                               return error;
-               }
-               if (!old || pidff_needs_set_effect(effect, old))
-                       pidff_set_effect_report(pidff, effect);
-               if (!old || pidff_needs_set_condition(effect, old))
-                       pidff_set_condition_report(pidff, effect);
-               break;
-
-       case FF_FRICTION:
-               if (!old) {
-                       error = pidff_request_effect_upload(pidff,
-                                       pidff->type_id[PID_FRICTION]);
-                       if (error)
-                               return error;
-               }
-               if (!old || pidff_needs_set_effect(effect, old))
-                       pidff_set_effect_report(pidff, effect);
-               if (!old || pidff_needs_set_condition(effect, old))
-                       pidff_set_condition_report(pidff, effect);
-               break;
-
        case FF_DAMPER:
-               if (!old) {
-                       error = pidff_request_effect_upload(pidff,
-                                       pidff->type_id[PID_DAMPER]);
-                       if (error)
-                               return error;
-               }
-               if (!old || pidff_needs_set_effect(effect, old))
-                       pidff_set_effect_report(pidff, effect);
-               if (!old || pidff_needs_set_condition(effect, old))
-                       pidff_set_condition_report(pidff, effect);
-               break;
-
        case FF_INERTIA:
+       case FF_FRICTION:
                if (!old) {
+                       switch(effect->type) {
+                       case FF_SPRING:
+                               type_id = PID_SPRING;
+                               break;
+                       case FF_DAMPER:
+                               type_id = PID_DAMPER;
+                               break;
+                       case FF_INERTIA:
+                               type_id = PID_INERTIA;
+                               break;
+                       case FF_FRICTION:
+                               type_id = PID_FRICTION;
+                               break;
+                       }
                        error = pidff_request_effect_upload(pidff,
-                                       pidff->type_id[PID_INERTIA]);
+                                       pidff->type_id[type_id]);
                        if (error)
                                return error;
                }