Input: adc-joystick - fix optional value handling
authorJohn Keeping <jkeeping@inmusicbrands.com>
Wed, 31 Jul 2024 09:33:09 +0000 (10:33 +0100)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 31 Jul 2024 17:20:43 +0000 (10:20 -0700)
The abs-fuzz and abs-flat properties are documented as optional.  When
these are absent, fwnode_property_read_u32() will leave the input
unchanged, meaning that an axis either picks up the value for the
previous axis or an uninitialized value.

Explicitly set these values to zero when they are unspecified to match
the documented behaviour in the device tree bindings.

Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
Link: https://lore.kernel.org/r/20240731093310.3696919-1-jkeeping@inmusicbrands.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/joystick/adc-joystick.c

index 5f46a7104b52a47406865dccd2174954ee60f006..de1fa4cf291b20c02852e1739d16af1d63cccfae 100644 (file)
@@ -182,8 +182,11 @@ static int adc_joystick_set_axes(struct device *dev, struct adc_joystick *joy)
                        swap(range[0], range[1]);
                }
 
-               fwnode_property_read_u32(child, "abs-fuzz", &fuzz);
-               fwnode_property_read_u32(child, "abs-flat", &flat);
+               if (fwnode_property_read_u32(child, "abs-fuzz", &fuzz))
+                       fuzz = 0;
+
+               if (fwnode_property_read_u32(child, "abs-flat", &flat))
+                       flat = 0;
 
                input_set_abs_params(joy->input, axes[i].code,
                                     range[0], range[1], fuzz, flat);