HID: pidff: Simplify pidff_upload_effect function
[ 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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
433c4234ff
commit
9cdd95f9a4
@@ -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_DAMPER:
|
||||
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_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:
|
||||
if (!old) {
|
||||
error = pidff_request_effect_upload(pidff,
|
||||
pidff->type_id[PID_INERTIA]);
|
||||
pidff->type_id[type_id]);
|
||||
if (error)
|
||||
return error;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user