On Mon, Mar 24, 2014 at 02:49:35PM +0100, Hans de Goede wrote: > The cypress PS/2 trackpad models supported by the cypress_ps2 driver emulate > BTN_RIGHT events in firmware based on the finger position, as part of this > no motion events are sent when the finger is in the button area. > > The INPUT_PROP_BUTTONPAD property is there to indicate to userspace that > BTN_RIGHT events should be emulated in userspace, which is not necessary > in this case. > > When INPUT_PROP_BUTTONPAD is advertised userspace will wait for a motion event > before propagating the button event higher up the stack, as it needs current > abs x + y data for its BTN_RIGHT emulation. Since in the cypress_ps2 pads > don't report motion events in the button area, this means that clicks in the > button area end up being ignored, so INPUT_PROP_BUTTONPAD actually causes > problems for these touchpads, and removing it fixes: > > https://bugs.freedesktop.org/show_bug.cgi?id=76341 > > Reported-by: Adam Williamson <awilliam@xxxxxxxxxx> > Tested-by: Adam Williamson <awilliam@xxxxxxxxxx> > Reviewed-by: Peter Hutterer <peter.hutterer@xxxxxxxxx> > Cc: Adam Williamson <awilliam@xxxxxxxxxx> > Cc: Peter Hutterer <peter.hutterer@xxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Applied, thank you. > --- > drivers/input/mouse/cypress_ps2.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/input/mouse/cypress_ps2.c b/drivers/input/mouse/cypress_ps2.c > index 87095e2..8af34ff 100644 > --- a/drivers/input/mouse/cypress_ps2.c > +++ b/drivers/input/mouse/cypress_ps2.c > @@ -409,7 +409,6 @@ static int cypress_set_input_params(struct input_dev *input, > __clear_bit(REL_X, input->relbit); > __clear_bit(REL_Y, input->relbit); > > - __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); > __set_bit(EV_KEY, input->evbit); > __set_bit(BTN_LEFT, input->keybit); > __set_bit(BTN_RIGHT, input->keybit); > -- > 1.9.0 > -- Dmitry -- 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