]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 20 Apr 2025 08:15:29 +0000 (10:15 +0200)
[ Upstream commit e4bdc80ef14272ef56c38d8ca2f365fdf59cd0ba ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hid/usbhid/hid-pidff.c

index 99b5d3deb40d0d9ab901ed95e817da395ed5ba13..42c951a1d65bf4a758b51ba9a53701561c14b7d1 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;
                }