Skip to content

Commit e4bdc80

Browse files
LawstorantJiri Kosina
authored andcommitted
HID: pidff: Simplify pidff_upload_effect function
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>
1 parent cb3fd78 commit e4bdc80

1 file changed

Lines changed: 16 additions & 38 deletions

File tree

drivers/hid/usbhid/hid-pidff.c

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -770,48 +770,26 @@ static int pidff_upload_effect(struct input_dev *dev, struct ff_effect *effect,
770770
break;
771771

772772
case FF_SPRING:
773-
if (!old) {
774-
error = pidff_request_effect_upload(pidff,
775-
pidff->type_id[PID_SPRING]);
776-
if (error)
777-
return error;
778-
}
779-
if (!old || pidff_needs_set_effect(effect, old))
780-
pidff_set_effect_report(pidff, effect);
781-
if (!old || pidff_needs_set_condition(effect, old))
782-
pidff_set_condition_report(pidff, effect);
783-
break;
784-
785-
case FF_FRICTION:
786-
if (!old) {
787-
error = pidff_request_effect_upload(pidff,
788-
pidff->type_id[PID_FRICTION]);
789-
if (error)
790-
return error;
791-
}
792-
if (!old || pidff_needs_set_effect(effect, old))
793-
pidff_set_effect_report(pidff, effect);
794-
if (!old || pidff_needs_set_condition(effect, old))
795-
pidff_set_condition_report(pidff, effect);
796-
break;
797-
798773
case FF_DAMPER:
799-
if (!old) {
800-
error = pidff_request_effect_upload(pidff,
801-
pidff->type_id[PID_DAMPER]);
802-
if (error)
803-
return error;
804-
}
805-
if (!old || pidff_needs_set_effect(effect, old))
806-
pidff_set_effect_report(pidff, effect);
807-
if (!old || pidff_needs_set_condition(effect, old))
808-
pidff_set_condition_report(pidff, effect);
809-
break;
810-
811774
case FF_INERTIA:
775+
case FF_FRICTION:
812776
if (!old) {
777+
switch(effect->type) {
778+
case FF_SPRING:
779+
type_id = PID_SPRING;
780+
break;
781+
case FF_DAMPER:
782+
type_id = PID_DAMPER;
783+
break;
784+
case FF_INERTIA:
785+
type_id = PID_INERTIA;
786+
break;
787+
case FF_FRICTION:
788+
type_id = PID_FRICTION;
789+
break;
790+
}
813791
error = pidff_request_effect_upload(pidff,
814-
pidff->type_id[PID_INERTIA]);
792+
pidff->type_id[type_id]);
815793
if (error)
816794
return error;
817795
}

0 commit comments

Comments
 (0)