[lkml]   [2012]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Multitouch regression in 3.3 on thinkpad X220 clickpad
    On Fri, Apr 20, 2012 at 08:27:37AM -0600, Daniel Drake wrote:
    > On Fri, Apr 20, 2012 at 1:21 AM, Benjamin Herrenschmidt
    > <> wrote:
    > > So Peter and I have been discussing a problem I observed on my brand new
    > > ThinkPad X220 and it's multitouch "clickpad". I've been digging a bit
    > > more today and bisected the regression to:
    > >
    > > commit 7968a5dd492ccc38345013e534ad4c8d6eb60ed1
    > > Input: synaptics - add support for Relative mode
    > >
    > > Without that commit, I can draw two "traces" when using two fingers in
    > > mtview (after removing the device from X), each follow one finger.
    > >
    > > With that commit applied, this doesn't work anymore: it appears to be
    > > unable to track more than one finger. IE. If i put a finger on the
    > > touchpad, I can draw, but a second finger is then ignored (or causes one
    > > or two spots in a random place to appear but that's about it).
    > >
    > > Now other multitouch operations such as two finger scrolling seem to
    > > work in X. I'm not familiar with the inner workings of the input layer
    > > or the synaptic touchpads. I'll dig a bit more this week-end if I have
    > > time, but it would save me plenty of that precious time if you guys
    > > could hint me at things to look at :-)
    > Sorry to cause you this trouble.
    > It's the first I've heard of issues with this patch, and unfortunately
    > I don't have any immediate diagnosis for you.
    > The patch isn't supposed to change behaviour of the existing default
    > mode which is called "absolute mode".
    > What I would suggest looking at is
    > synaptics_set_advanced_gesture_mode(). Is this being called, does it
    > run to completion?

    It looks we lost a condition in synaptics_set_advanced_gesture_mode().
    It used to be:

    if (!(SYN_CAP_ADV_GESTURE(priv->ext_cap_0c) ||
    return 0;

    and now simply is:

    if (!SYN_CAP_ADV_GESTURE(priv->ext_cap_0c))
    return 0;

    Could you try restoring the condition and see if it fixes the



     \ /
      Last update: 2012-04-20 19:05    [W:0.022 / U:8.132 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site