Multitouch regression in 3.3 on thinkpad X220 clickpad

Dmitry Torokhov dmitry.torokhov at gmail.com
Fri Apr 20 10:01:32 PDT 2012


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 at 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


More information about the xorg-devel mailing list