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