On Tue, Jan 31, 2012 at 1:05 AM, Chase Douglas <chase.douglas@xxxxxxxxxxxxx> wrote: > > On 01/30/2012 01:23 PM, Jussi Pakkanen wrote: > > On 01/30/2012 10:35 AM, Henrik Rydberg wrote: > >> +INPUT_PROP_SEMI_MT: > >> +------------------ > >> +Some touchpads, most common between 2008 and 2011, can detect the presence > >> +of multiple contacts without resolving the individual positions; only the > >> +number of contacts and the corresponding bounding box is known. For such > >> +touchpads, the semi-mt property should be set. > > > > A "corresponding bounding box" usually means "a bounding box that > > contains all touches on the touchpad". I've been told (though I have not > > checked it myself) that there are devices that don't do this. They only > > report a bounding box for some subset of touches. If this is the case, > > it should be documented here. > > Yeah, I thought Henrik's definition was correct for a long time, but > when Derek Foreman (I think) proposed some patches for the latest > synaptics devices I took a closer look at my semi-mt synaptics trackpad. > The coordinates it gave were locations based on two of the touches. When > three touches are on the touchpad, it gave a bounding box of two of the > touches, and there's no way to tell which two. This is correct. At least some of the Synaptics touchpads for which the "semi-mt" path through the kernel driver is used, the firmware tries to report the actual positions for two contacts. However, due to limitations of their 'profile sensor' design, if the two fingers get too close together, or even cross in the X or Y dimension, the firmare tracking gets confused and can start reporting the "X" of one contact with the "Y" of another. Thus, the safest behavior is to pair [min(X1, X2), min(Y1, Y2)] and [max(X1, X2), max(Y1, Y2)], and treat these two points as the corners of a 'bounding box'. If a third contact is on the pad, there is no guarantee that it will be in this box. -Daniel > > -- Chase > > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html