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

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

 



On Sat, Jan 20, 2024 at 01:10:18AM -0800, Dmitry Torokhov wrote:
> 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);
>  	}

OK, I went ahead and folded this into the original patch and applied.

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