Input: da7280 - do not advertise FF_GAIN
Subsystems (4)
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.
---
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
@@ -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]>
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_GAINin the device's force feedback capabilities but provides noset_gain()callback.input_ff_event()checks the capability bit, not the callback, before callingff->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_GAINfrom the capabilities, so thatinput_ff_event()ignores such an event.Fixes cd3f609823a5 ("Input: new da7280 haptic driver")Signed-off-by Ivan Verbovoy <[email protected]>
Applied, thank you.
Signature · 1 line
Dmitry