Re: [PATCH 10/12] Input: synaptics - decode AGM packet types
From: Daniel Kurtz <hidden>
Date: 2011-06-29 11:26:29
Also in:
lkml
Hi Daniel, Chase, On Wed, Jun 29, 2011 at 6:32 PM, Chase Douglas [off-list ref] wrote:
On 06/29/2011 11:07 AM, Daniel Stone wrote:quoted
Hi Chase, On Wed, Jun 29, 2011 at 11:02:53AM +0100, Chase Douglas wrote:quoted
In the older "profile" devices, we got essentially the bounding box of all touches. This allows us to detect pinch gestures between the two most extreme touches when there are three touches on the touchpad.This isn't necessarily true for all pads. If you look at Derek's patchset from a couple of weeks ago, it was for a profile sensor which had the same reporting behaviour. Internally, the touchpad could track many fingers, but would always report the first (in SGM packet) and most recent (in AGM packet) fingers. You could fake a bounding-box calculation, but it would be the bounding box of fingers 0 and n, rather than the bounding box of all fingers.Are we really sure that Derek's trackpad was a profile device? I mean *really* sure. Because if Synaptics is putting out two different devices that are identical in protocol but behave differently, then that's a *big* problem for us gesture developers :). I would be surprised if a profile device were providing the first and third touch locations as opposed to the bounding box because then there's no difference between it and this new "image sensor" device type.
I agree with Chase, the 0:n box behavior sounds more like image sensor than profile sensor. However, as I just mentioned in the previous email, I have looked at a profile sensor that tries to report first and second finger positions, not a bounding box. In any case, the result is: You end up computing (usually) a 0:1 "bounding box", with n >= 2 fingers on the pad. I say usually because it is pretty easy to confuse the finger tracking of a profile sensor.
quoted
quoted
The above description makes it sound like we will no longer have a bounding box of touches. According to the description, if I put four fingers down in a square formation and then touch a fifth finger in the middle of the square, I will only see the locations of one corner and the middle of the square. This would make meaningful gesture detection beyond two touches nearly impossible. Is this really how the touchpad works, or is the above description not quite right?Yes, I believe that's how the touchpad works. It would be nice to get all fingers, but unfortunately PS/2 doesn't give us enough bandwidth to do that.If this is true for these new image devices, then we'll need to set a different property bit other than SEMI_MT (maybe FIRST_LAST_MT? I'm not good with names :). I'm thinking we should disable gesture support for these trackpads in uTouch when there are more than two touches because we can't be sure what is going on in any meaningful way. The bounding box is more useful than this, which is really sad. -- Chase
This is exactly what this patch set does by defining the T5R2 property. It is very challenging to support any 3+ finger gestures with a touchpad that only reports two fingers... whether it is semi-mt or T5R2. You must always make an assumption about where those hidden fingers are. But, that's a problem for userspace... :) -Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html