From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Chase Douglas <chase.douglas@canonical.com>
Cc: Henrik Rydberg <rydberg@euromail.se>,
Daniel Kurtz <djkurtz@chromium.org>,
rubini@cvml.unipv.it, linux-input@vger.kernel.org,
linux-kernel@vger.kernel.org, derek.foreman@collabora.co.uk,
daniel.stone@collabora.co.uk, olofj@chromium.org
Subject: Re: [PATCH 09/12] Input: synaptics - add image sensor support
Date: Wed, 6 Jul 2011 14:36:58 -0700 [thread overview]
Message-ID: <20110706213658.GA9409@core.coreip.homeip.net> (raw)
In-Reply-To: <4E14D22D.8050108@canonical.com>
On Wed, Jul 06, 2011 at 02:22:53PM -0700, Chase Douglas wrote:
> On 07/06/2011 01:20 PM, Henrik Rydberg wrote:
> >>> To me, it seems we do need a little bit of extra information to
> >>> determine this new type of device.
> >>
> >> I think we already have all we need (see above).
> >
> > I concur. So, to conclude:
> >
> > a) The improved synaptics behavior can be achieved by simply using
> > MT-B plus BTN_TOOL_*.
> >
> > b) Userspace should check BTN_TOOL_* for any discrepancies between the
> > maximum number of available slots (always two in this case) and the
> > maximum number of fingers reported (BTN_TOOL_TRIPLETAP etc). Extra
> > actions may then be taken to support more fingers than slots.
> >
> > c) The semi-mt flag is only used to signal that the two points sent
> > via MT-B are the corners of a bounding box.
>
> This isn't quite enough. If we don't set the semi-mt flag or any other
> new flag, then we'll have slots that become inconsistent when touches
> are added or removed. For example, start with two touches being tracked
> correctly. Now, add a touch. The second slot will now get the data of
> the third touch, which is in a different location. You haven't changed
> the tracking_id though, so it looks like the same touch. This is
> incorrect behavior. Or, you could change the tracking_id, but that
> implies that a touch was lifted and another was placed. This is also
> incorrect behavior.
The tracking ID needs to be changed as we start trackign and reporting
new touch. We could see that the old touch was not removed from the fact
that total number of finger reported increased.
>
> We need to tell userspace that this is a messed up device that can't
> accurately track touch locations across touch up/down boundaries. Once
> userspace sees this, it can act appropriately when it sees a transition
> from BTN_TOOL_DOUBLETAP to BTN_TOOL_TRIPLETAP, for example. This is how
> we handle transitions in the uTouch stack for semi-mt devices.
>
> Perhaps a clean implementation would be to keep semi-mt as a flag
> stating that there will only ever be two slots, the 0th will be the
> minimum (x,y) of the bounding box and the 1st will be the maximum. Then,
> we add a flag like NO_TOUCH_TRANSITION_TRACKING that would be set on
> both semi-mt and these new devices that denote the slot data may
> transition from one physical touchpoint to another when the number of
> touches changes.
>
> We could leave this up to userspace and have it detect a
> NO_TOUCH_TRANSITION_TRACKING device based on the fact that the max slots
> is less than the max fingers, but I would argue here that a more clear
> protocol is a better protocol.
I'll ask this - how much realistically do we care about 3+ finger
transitions in context of these particular devices? This is a touchpad
so as long as basic 2 finger gestures work (zoom, pinch, 2-finger
scroll) with Synaptics X driver we should be fine. I do not want to add
all kinds of custom flags to the protocol to deal with this generation
of touchpads.
It sounds to me like latest generation of Synaptocs protocol is a dud
and hopefully they will fix it to something more flexible in the next
generationof chips...
Thanks.
--
Dmitry
next prev parent reply other threads:[~2011-07-06 21:37 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-29 5:07 [PATCH 00/12] Synaptics image sensor support djkurtz
2011-06-29 5:07 ` [PATCH 01/12] Input: synaptics - cleanup 0x0c query documentation djkurtz
2011-07-05 17:33 ` Chase Douglas
2011-07-06 13:50 ` Daniel Kurtz
2011-07-07 6:30 ` Dmitry Torokhov
2011-06-29 5:07 ` [PATCH 02/12] Input: synaptics - do not invert y if 0 djkurtz
2011-07-04 21:08 ` Henrik Rydberg
2011-07-05 4:29 ` Daniel Kurtz
2011-07-05 18:07 ` Henrik Rydberg
2011-07-05 18:39 ` Chris Bagwell
2011-07-05 23:02 ` Daniel Kurtz
2011-07-05 17:42 ` Chase Douglas
2011-07-05 22:50 ` Daniel Kurtz
2011-07-05 23:06 ` Chase Douglas
2011-07-05 23:15 ` Daniel Kurtz
2011-07-05 23:25 ` Dmitry Torokhov
2011-06-29 5:07 ` [PATCH 03/12] Input: synaptics - fix minimum reported ABS_TOOL_WIDTH djkurtz
2011-06-29 13:28 ` Chris Bagwell
2011-06-29 16:48 ` Daniel Kurtz
2011-06-29 19:46 ` Chris Bagwell
2011-07-04 21:14 ` Henrik Rydberg
2011-07-09 6:24 ` Jeffrey Brown
2011-06-29 5:07 ` [PATCH 04/12] Input: synaptics - set resolution for MT_POSITION_X/Y axes djkurtz
2011-07-05 17:44 ` Chase Douglas
2011-07-07 6:23 ` Dmitry Torokhov
2011-06-29 5:07 ` [PATCH 05/12] Input: synaptics - process button bits in AGM packets djkurtz
2011-07-04 21:24 ` Henrik Rydberg
2011-07-05 4:38 ` Daniel Kurtz
2011-07-05 18:18 ` Henrik Rydberg
2011-07-05 18:19 ` Chase Douglas
2011-07-05 17:47 ` Chase Douglas
2011-07-07 6:24 ` Dmitry Torokhov
2011-06-29 5:07 ` [PATCH 06/12] Input: synaptics - fuzz position if touchpad reports reduced filtering djkurtz
2011-07-05 17:49 ` Chase Douglas
2011-07-07 6:25 ` Dmitry Torokhov
2011-06-29 5:07 ` [PATCH 07/12] Input: synaptics - rename synaptics_data.mt to agm djkurtz
2011-07-04 21:26 ` Henrik Rydberg
2011-07-05 4:39 ` Daniel Kurtz
2011-07-05 18:20 ` Henrik Rydberg
2011-07-05 17:53 ` Chase Douglas
2011-06-29 5:07 ` [PATCH 08/12] Input: synaptics - rename set_slot to be more descriptive djkurtz
2011-07-05 17:54 ` Chase Douglas
2011-07-07 6:27 ` Dmitry Torokhov
2011-06-29 5:07 ` [PATCH 09/12] Input: synaptics - add image sensor support djkurtz
2011-07-04 21:42 ` Henrik Rydberg
2011-07-05 5:08 ` Daniel Kurtz
2011-07-05 19:27 ` Henrik Rydberg
2011-07-06 16:41 ` Daniel Kurtz
2011-07-06 17:08 ` Chase Douglas
2011-07-06 17:45 ` Dmitry Torokhov
2011-07-06 18:47 ` Henrik Rydberg
2011-07-06 18:58 ` Dmitry Torokhov
2011-07-06 19:31 ` Henrik Rydberg
2011-07-06 20:00 ` Dmitry Torokhov
2011-07-06 20:20 ` Henrik Rydberg
2011-07-06 21:22 ` Chase Douglas
2011-07-06 21:36 ` Dmitry Torokhov [this message]
2011-07-06 22:16 ` Chase Douglas
2011-07-06 22:35 ` Henrik Rydberg
2011-07-06 23:30 ` Chase Douglas
2011-06-29 5:07 ` [PATCH 10/12] Input: synaptics - decode AGM packet types djkurtz
2011-06-29 10:02 ` Chase Douglas
2011-06-29 10:07 ` Daniel Stone
2011-06-29 10:32 ` Chase Douglas
2011-06-29 11:26 ` Daniel Kurtz
2011-06-29 11:04 ` Daniel Kurtz
2011-07-05 18:17 ` Chase Douglas
2011-07-05 18:55 ` Chris Bagwell
2011-07-06 16:53 ` Daniel Kurtz
2011-06-29 5:07 ` [PATCH 11/12] Input: synaptics - process finger (<=3) transitions djkurtz
2011-06-29 5:07 ` [PATCH 12/12] Input: synaptics - process finger (<=5) transitions djkurtz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110706213658.GA9409@core.coreip.homeip.net \
--to=dmitry.torokhov@gmail.com \
--cc=chase.douglas@canonical.com \
--cc=daniel.stone@collabora.co.uk \
--cc=derek.foreman@collabora.co.uk \
--cc=djkurtz@chromium.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=olofj@chromium.org \
--cc=rubini@cvml.unipv.it \
--cc=rydberg@euromail.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).