Re: [PATCH] Input: synaptics - fix 1->3 contact transition reporting

From: Dmitry Torokhov
Date: Wed Feb 13 2013 - 23:27:22 EST


On Fri, Feb 01, 2013 at 04:29:00PM +0800, Daniel Kurtz wrote:
> Investigating the following gesture highlighted two slight implementation
> errors with choosing which slots to report in which slot when multiple
> contacts are present:
>
> Action SGM AGM (MTB slot:Contact)
> 1. Touch contact 0 (0:0)
> 2. Touch contact 1 (0:0, 1:1)
> 3. Lift contact 0 (1:1)
> 4. Touch contacts 2,3 (0:2, 1:3)
>
> In step 4, slot 1 was not being cleared first, which means the same
> tracking ID was being used for reporting both the old contact 1 and the
> new contact 3. This could result in "drumroll", where the old contact 1
> would appear to suddenly jump to new finger 3 position.
>
> Similarly, if contacts 2 & 3 are not detected at the same sample, step 4
> is split into two:
>
> Action SGM AGM (MTB slot:contact)
> 1. Touch contact 0 (0:0)
> 2. Touch contact 1 (0:0, 1:1)
> 3. Lift contact 0 (1:1)
> 4. Touch contact 2 (0:2, 1:1)
> 5. Touch contact 3 (0:2, 1:3)
>
> In this case, there was also a bug. In step 4, when contact 1 moves from
> SGM to AGM and contact 2 is first reported in SGM, slot 0 was actually
> empty. So slot 0 can be used to report the new SGM (contact 0),
> immediately. Since it was empty, contact 2 in slot 0 will get a new
> tracking ID.
>
> Signed-off-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>

Applied, thank you Daniel.

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/