Re: [PATCH v2] input/iforce: Remove the BTN_DEAD assignment and usage

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

 



On Thu, Jul 26, 2018 at 04:09:18PM +0200, Tim Schumacher wrote:

> If BTN_DEAD does fulfill a purpose on some devices in this series it
> indeed should not be removed unconditionally.
> 
> Do you know if that optical sensor is a feature of only the
> joystick-like devices? The Formula Force wheel (at least the red
> version) doesn't seem to have such a feature, which is probably
> the root cause for the issues.
> 
> During testing of the previous version of this patch I noticed
> that the call to input_report_key() does nothing if the button
> hasn't been assigned with set_bit() before.
> 
> Would moving BTN_DEAD into the array of buttons at the top of
> iforce-main.c (only for the devices that need it) be a viable
> solution? The current set_bit() call for BTN_DEAD does not differ
> from the automated call that reads from the selected arrays.
> 
> That way BTN_DEAD only gets assigned for devices that need it
> (resolving the issue for some devices while not breaking other ones)
> and the input_report_key() function call later becomes a no-op
> if it isn't needed.

Indeed, the BTN_DEAD present bit should not be set for devices that don't
have it.

So it does make sense to move it into the per-device array and away from
the common code.

> > > > Signed-off-by: Tim Schumacher <timschumi@xxxxxx>
> > > > ---
> > > >   drivers/input/joystick/iforce/iforce-main.c    | 1 -
> > > >   drivers/input/joystick/iforce/iforce-packets.c | 1 -
> > > >   2 files changed, 2 deletions(-)
> > > > 
> > > > diff --git a/drivers/input/joystick/iforce/iforce-main.c b/drivers/input/joystick/iforce/iforce-main.c
> > > > index 054abed0fdc1..a4ab58633136 100644
> > > > --- a/drivers/input/joystick/iforce/iforce-main.c
> > > > +++ b/drivers/input/joystick/iforce/iforce-main.c
> > > > @@ -388,7 +388,6 @@ int iforce_init_device(struct iforce *iforce)
> > > >   	for (i = 0; iforce->type->btn[i] >= 0; i++)
> > > >   		set_bit(iforce->type->btn[i], input_dev->keybit);
> > > > -	set_bit(BTN_DEAD, input_dev->keybit);
> > > >   	for (i = 0; iforce->type->abs[i] >= 0; i++) {
> > > > diff --git a/drivers/input/joystick/iforce/iforce-packets.c b/drivers/input/joystick/iforce/iforce-packets.c
> > > > index 08f98f2eaf88..d929c6f05275 100644
> > > > --- a/drivers/input/joystick/iforce/iforce-packets.c
> > > > +++ b/drivers/input/joystick/iforce/iforce-packets.c
> > > > @@ -220,7 +220,6 @@ void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data)
> > > >   			break;
> > > >   		case 0x02:	/* status report */
> > > > -			input_report_key(dev, BTN_DEAD, data[0] & 0x02);
> > > >   			input_sync(dev);
> > > >   			/* Check if an effect was just started or stopped */

-- 
Vojtech Pavlik
Director SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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