[PATCH 2/3] input: ff-memless: Add trigger left/right in ml_combine_effects

From: Guillaume Casal

Date: Thu Jul 30 2026 - 06:23:47 EST


From: Daniel Bomar <dbdaniel42@xxxxxxxxx>

Combine the new trigger magnitudes alongside the existing strong and weak
magnitudes, so that drivers using input_ff_create_memless() receive them
the same way.

Originally posted in 2022 and never merged:
https://lore.kernel.org/lkml/20220410220449.5071-1-dbdaniel42@xxxxxxxxx/

Rebased onto v7.2-rc5 with no functional change.

Signed-off-by: Daniel Bomar <dbdaniel42@xxxxxxxxx>
Signed-off-by: Guillaume Casal <guillaume.casal.42@xxxxxxxxx>
---
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
--- a/drivers/input/ff-memless.c
+++ b/drivers/input/ff-memless.c
@@ -243,7 +243,7 @@
int gain)
{
struct ff_effect *new = state->effect;
- unsigned int strong, weak, i;
+ unsigned int strong, weak, trigger_left, trigger_right, i;
int x, y;
s16 level;

@@ -269,6 +269,8 @@
case FF_RUMBLE:
strong = (u32)new->u.rumble.strong_magnitude * gain / 0xffff;
weak = (u32)new->u.rumble.weak_magnitude * gain / 0xffff;
+ trigger_left = (u32)new->u.rumble.trigger_left * gain / 0xffff;
+ trigger_right = (u32)new->u.rumble.trigger_right * gain / 0xffff;

if (effect->u.rumble.strong_magnitude + strong)
effect->direction = ml_calculate_direction(
@@ -287,6 +289,10 @@
0xffffU);
effect->u.rumble.weak_magnitude =
min(weak + effect->u.rumble.weak_magnitude, 0xffffU);
+ effect->u.rumble.trigger_left =
+ min(trigger_left + effect->u.rumble.trigger_left, 0xffffU);
+ effect->u.rumble.trigger_right =
+ min(trigger_right + effect->u.rumble.trigger_right, 0xffffU);
break;

case FF_PERIODIC: