On 09/13/2010 12:12 PM, Naveen Kumar GADDIPATI wrote: [...] >>>>> +static bool bu21013_verify_delta(int x1, int y1, int x2, int y2) >>>>> +{ >>>>> + int delta_x, delta_y; >>>>> + >>>>> + if ((x1 != 0) && (y1 != 0)) { >>>>> + delta_x = x2 - x1; >>>>> + if (x1 > x2) >>>>> + delta_x = x1 - x2; >>>>> + delta_y = y2 - y1; >>>>> + if (y1 > y2) >>>>> + delta_y = y1 - y2; >>>>> + if ((delta_x < DELTA_MIN) || (delta_y < DELTA_MIN)) >>>>> + return false; >>>>> + } >>>>> + return true; [...] >> I do not understand why deltas are verified in the first place. >> Either one can rely on the identity of the fingers, in which >> case MT slots is simpler to handle, or one cannot rely on it, >> in which case the above code is wrong, since it assumes the >> values compared have the same identity. > > This case according to controller specification, when the two fingers delta is of > 16 either in x or y, we should ignore those co-ordinates and report as pen-up. And not as a single finger with larger perimeter? It would be interesting to know how this driver has been tested. There are some applications that can help examining the quality of MT output, one of them can be found at http://bitmath.org/code/mtview/. Henrik -- 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