Skip to contentSkip to conversation

Input: da7280 - do not advertise FF_GAIN

PATCH Applied Ivan Verbovoy 2 participants 2 messages Nov 9 – Nov 10

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Input: da7280 - do not advertise FF_GAIN

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")

---
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(-)
drivers/input/misc/da7280.c +0 -1
index 995d3f7af41a..4c60fd4fb932 100644
@@ -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,

Signature · 1 line
Ivan Verbovoy <[email protected]>
maintainer Applied
#1 lore raw
Quoted 8 lines · On Mon, Nov 09, 2026 at 07:15:55PM +0200, Ivan Verbovoy via B4 Relay wrote:

From: Ivan Verbovoy <[email protected]>

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.

Quoted 8 lines

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")

Applied, thank you.

Signature · 1 line
Dmitry