Commit e2ec6d67 authored by Jiri Kosina's avatar Jiri Kosina
Browse files

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

- solidify trigger handling in hid-pidff (Tomasz Pakuła)
parents 9f2975f1 e01a0296
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -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;
	/* 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;