Merge branch 'for-6.20/pidff' into for-linus

- solidify trigger handling in hid-pidff (Tomasz Pakuła)
This commit is contained in:
Jiri Kosina
2026-02-09 17:37:12 +01:00

View File

@@ -523,9 +523,19 @@ static void pidff_set_effect_report(struct pidff_device *pidff,
pidff_set_duration(&pidff->set_effect[PID_DURATION],
effect->replay.length);
pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = effect->trigger.button;
pidff_set_time(&pidff->set_effect[PID_TRIGGER_REPEAT_INT],
effect->trigger.interval);
/* Some games set this to random values that can be out of range */
s32 trigger_button_max =
pidff->set_effect[PID_TRIGGER_BUTTON].field->logical_maximum;
if (effect->trigger.button <= trigger_button_max) {
pidff->set_effect[PID_TRIGGER_BUTTON].value[0] =
effect->trigger.button;
pidff_set_time(&pidff->set_effect[PID_TRIGGER_REPEAT_INT],
effect->trigger.interval);
} else {
pidff->set_effect[PID_TRIGGER_BUTTON].value[0] = 0;
pidff->set_effect[PID_TRIGGER_REPEAT_INT].value[0] = 0;
}
pidff->set_effect[PID_GAIN].value[0] =
pidff->set_effect[PID_GAIN].field->logical_maximum;