Messages in this thread |  | | | Date | Fri, 20 Apr 2012 10:01:32 -0700 | | From | Dmitry Torokhov <> | | Subject | Re: 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 > <benh@kernel.crashing.org> 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) || SYN_CAP_IMAGE_SENSOR(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 regression?
Thanks.
-- Dmitry
|  |