[PATCH] Input: da7280 - do not advertise FF_GAIN

From: Ivan Verbovoy via B4 Relay

Date: Mon Nov 09 2026 - 12:24:31 EST


From: Ivan Verbovoy <ivanverbovoy@xxxxxxxxx>

The driver sets FF_GAIN in the device's force feedback capabilities but
provides no set_gain() callback. input_ff_event() checks the capability
bit, not the callback, before calling ff->set_gain(), so an EV_FF/FF_GAIN
event written to the event node by any process with write access to it
calls through a NULL pointer.

The driver has no global gain to set: a constant effect carries its own
level, and a periodic effect plays a pattern from the device's waveform
memory. Drop FF_GAIN from the capabilities, so that input_ff_event()
ignores such an event.

Fixes: cd3f609823a5 ("Input: new da7280 haptic driver")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Ivan Verbovoy <ivanverbovoy@xxxxxxxxx>
---
A NULL set_gain() call on an FF_GAIN write, seen on a Surface Duo
(sm8150).
---
drivers/input/misc/da7280.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/input/misc/da7280.c b/drivers/input/misc/da7280.c
index 995d3f7af41a..4c60fd4fb932 100644
--- a/drivers/input/misc/da7280.c
+++ b/drivers/input/misc/da7280.c
@@ -1226,7 +1226,6 @@ static int da7280_probe(struct i2c_client *client)
input_set_capability(haptics->input_dev, EV_FF, FF_PERIODIC);
input_set_capability(haptics->input_dev, EV_FF, FF_CUSTOM);
input_set_capability(haptics->input_dev, EV_FF, FF_CONSTANT);
- input_set_capability(haptics->input_dev, EV_FF, FF_GAIN);

error = input_ff_create(haptics->input_dev,
DA7280_FF_EFFECT_COUNT_MAX);

---
base-commit: 630059a5a632377b9b7b487baccde92b7ae1dd47
change-id: 20261103-da7280-fixes-bc3662da833d

Best regards,
--
Ivan Verbovoy <ivanverbovoy@xxxxxxxxx>