Hi, On 03/21/2014 10:31 AM, Hans de Goede wrote: > Hi, > > On 03/20/2014 11:18 PM, Peter Hutterer wrote: >> Signed-off-by: Peter Hutterer <[email protected]> >> --- >> conf/11-x11-synaptics.fdi | 9 +++++++++ >> conf/50-synaptics.conf | 12 ++++++++++++ >> 2 files changed, 21 insertions(+) >> >> diff --git a/conf/11-x11-synaptics.fdi b/conf/11-x11-synaptics.fdi >> index a898875..44dfce3 100644 >> --- a/conf/11-x11-synaptics.fdi >> +++ b/conf/11-x11-synaptics.fdi >> @@ -34,6 +34,15 @@ >> <match key="info.product" contains="Apple|bcm5974"> >> <merge key="input.x11_options.SoftButtonAreas" type="string">0 >> 0 0 0 0 0 0 0</merge> >> </match> >> + >> + <!--The Cypress touchpads provide BTN_RIGHT in firmware, together >> with >> + clickfinger, and two-finger scrolling. Disable Clickpads, >> otherwise we >> + get flaky button behaviour. >> + https://bugs.freedesktop.org/show_bug.cgi?id=70819 >> + https://bugs.freedesktop.org/show_bug.cgi?id=76341 --> > > I'm not so sure that using a xorg.conf snippet for this is the best way to go > about this, I would > prefer to see a fix to the kernel to not report the clickpad flag for non > clickpads. Esp. as some > newer or future Cypress touchpads may very well get rid of the firmware mode > and do everything in > the drivers as other vendors do. > > I really think that "CyPS/2 Cypress Trackpad" is a way to generic match > string and is > going to bite us in the future. At a minimum we should use the still to be > merged DMI matching > here to limit this to certain laptop models, but IHMO it would be much better > to simply fix > this in the kernel. For starters we could add a dmi quirk in the kernel for > the XPS 13, until we > figure out a better way to decide which Cypress Trackpads use this firmware > emulation and which > models don't. > > And maybe the one in the Dell XPS 13 even has a command we can send to it to > turn of the > emulation too, which would allow us to really fix 70819 too.
So I've spend some time reading the kernel cypress_ps2 driver, conclusions: 1) It can only do multi-touch for upto 2 fingers, it can detect tripple / quad fingers being down but will only report coordinates for 2. 2) It seems to do a lot of processing in firmware, so in general at least for the currently supported generation not reporting INPUT_PROP_BUTTONPAD seems to be the right thing to do for all currently supported Cypress Trackpads. I still believe the kernel is the right place to fix this. Adam, can you build a kernel with the attached patch, remove your xorg.conf changes and then test that setup please ? Regards, Hans
>From 4b0668abbea0068cbdf7f9b0d149ccc245d79fab Mon Sep 17 00:00:00 2001 From: Hans de Goede <[email protected]> Date: Fri, 21 Mar 2014 10:55:11 +0100 Subject: [PATCH] input: cypress_ps2: Don't report the cypress PS/2 trackpads as a button pad The cypress PS/2 trackpad models supported by the cypress_ps2 driver do right button emulation in firmware, filtering out a bunch of events userspace needs to do clickpad handling on its own. So reporting them as clickpads actually causes a bunch of issues: https://bugs.freedesktop.org/show_bug.cgi?id=70819 https://bugs.freedesktop.org/show_bug.cgi?id=76341 Signed-off-by: Hans de Goede <[email protected]> --- 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
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
