Re: [PATCH v3] Input: adc-joystick: Handle inverted axes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 19, 2024 at 12:29:54AM -0800, Dmitry Torokhov wrote:
> Hi Chris,
> 
> On Mon, Jan 15, 2024 at 01:27:52PM -0600, Chris Morgan wrote:
> >  
> > +static int adc_joystick_invert(struct input_dev *dev,
> > +			       unsigned int axis, int val)
> > +{
> > +	int min = dev->absinfo[axis].minimum;
> > +	int max = dev->absinfo[axis].maximum;
> 
> I changed this to input_abs_get_[min|max](dev, axis) to avoid peeking
> into absinfo and applied.

Apparently min_array() and max_array() are a bit too new. Also I am not
sure if they are actually needed. Can we do it like this:

diff --git a/drivers/input/joystick/adc-joystick.c b/drivers/input/joystick/adc-joystick.c
index 10ee13465cfe..916e78e4dc9f 100644
--- a/drivers/input/joystick/adc-joystick.c
+++ b/drivers/input/joystick/adc-joystick.c
@@ -185,14 +185,14 @@ static int adc_joystick_set_axes(struct device *dev, struct adc_joystick *joy)
 		if (axes[i].range[0] > axes[i].range[1]) {
 			dev_dbg(dev, "abs-axis %d inverted\n", i);
 			axes[i].inverted = true;
+			swap(axes[i].range[0], axes[i].range[1]);
 		}
 
 		fwnode_property_read_u32(child, "abs-fuzz", &axes[i].fuzz);
 		fwnode_property_read_u32(child, "abs-flat", &axes[i].flat);
 
 		input_set_abs_params(joy->input, axes[i].code,
-				     min_array(axes[i].range, 2),
-				     max_array(axes[i].range, 2),
+				     axes[i].range[0], axes[i].range[1],
 				     axes[i].fuzz, axes[i].flat);
 		input_set_capability(joy->input, EV_ABS, axes[i].code);
 	}

Thanks.

-- 
Dmitry




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux