All of lore.kernel.org
 help / color / mirror / Atom feed
From: Henrik Rydberg <rydberg@euromail.se>
To: "Éric Piel" <E.A.B.Piel@tudelft.nl>
Cc: Chris Bagwell <chris@cnpbagwell.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
	Florian Ragwitz <rafl@debian.org>
Subject: Re: [PATCH 7/7] elantech: average the two coordinates when 2 fingers
Date: Mon, 02 Aug 2010 14:29:07 +0200	[thread overview]
Message-ID: <4C56BA13.3030104@euromail.se> (raw)
In-Reply-To: <4C56B686.60606@tudelft.nl>

On 08/02/2010 02:13 PM, Éric Piel wrote:

> Op 02-08-10 13:46, Henrik Rydberg schreef:
>> On 08/02/2010 01:33 PM, Éric Piel wrote:
> :
>>>> The implemented part could also be done in userspace. Going half-way just to
>>>> circumvent buggy behavior in synaptics is really not a good idea.
>>> No, we've been going from protocol 0.5 (report max/min coordinates) to
>>> protocol A.5 (report finger positions, often with correct track ID). My
>>> argument is that it's not because we are half-way to B, by chance, that
>>> we should go up to it. We do just the minimum to respect the minimum
>>> protocol. Once the driver respects that protocol, all the fancy stuff
>>> has to stay in userspace. There is already mtdev (I'm sure I don't have
>>> to tell you ;-) ), I don't see the point of doing some copy-pasting.
>>
>>
>> Without this patch, the driver reports two points, the lower-left and
>> upper-right of a rectangle. With this patch, the driver reports two points,
>> which is either equal to the two actual fingers, or, after resting the fingers
>> horizontally, two random opposite corners of a rectangle.
> Yes, exactly.
> 
>> Doing userspace tracking without the patch results in properly following the
>> lower-left and upper-right corners of a triangle. Doing userspace tracking with
>> the patch results in properly following two random opposite corners of a rectangle.
> Yes, with "random opposite" being "quite often the actual corners where
> the fingers are".


Right. It is not very compelling for someone actually trying to use the MT
points to anything useful.

>> Without this patch, synaptics shows jerky behavior. With this patch, synaptics
>> works a bit better.
> No. This patch, doing the tracking, doesn't change at all the behaviour
> with synaptics.
> 
> Synaptics already detects the transitions between singletap/doubletap,
> and avoid cursor jumps. So tracking the finger doesn't help. The only
> patch that ever helped was the one in the subject of this email:
> reporting the double touch in ST-protocol as the middle of the two
> touches. That helps a lot when you do scrolling with one finger fixed
> and one finger moving (because without it half of the time nothing
> happens). If your gesture is to move both fingers at the same time, it
> has always worked fine.


So "this patch" got intermingled. The part that you describe is the part that I
was referring to.

> The tracking patch improves cursor jumps for other userspace apps which
> do not detect singletap/doubletap transitions... but in practice I don't
> know any other app that read the touchpad events! So that's not a big
> improvement ;-)


Right.

>> The above tells me that the MT situation did not improve much, and that the
>> major improvement is to paper over the synaptics problem.
> For me it has changed because my argument was "with two finger we report
> crap anyway, so let's report the average". With the tracking, we
> actually (often) report the real position of the fingers, so this
> argument is not valid anymore. Now we can happily say we conform to the
> official protocols: ST (which apparently requires to always reports an
> actual position), and MT-A.


It does not comply with MT-A as long as two semi-random corners of a rectangle
are reported.

>> The argument to go forward implementing protocol B is that the current patch
>> actually does proper two-finger tracking to the extent that it is possible.
>> Since mtdev cannot improve the fact that this device does not following fingers
>> but corners, it makes sense to treat this device specially, and implement the
>> extra lines in the kernel to make it as good as it can be. Alternatively, one
>> can give up the idea of using MT in this driver altogether, and just implement
>> the mean position ABS_X/Y, old-style.
> Do you think that if we implement full tracking in kernel, we can do
> _better_ than the small tracking + mtdev? I don't think so (but, hey,
> I've been tinkering with multitouch for something like 20h in my life,
> so I might have missed something ;-) ). If you have in mind a better
> performing algorithm, then let me know, and I'll happily implement it in
> kernel :-)


We can do better in the sense that since the device cannot comply with MT-A, we
can do as close as possible to MT-B with less cpu usage. But frankly, the best
solution at this stage seems to be to drop MT handling altogether, since there
does not seem to be any plan to use it.

Henrik
--
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

  reply	other threads:[~2010-08-02 12:29 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-21 20:59 [PATCH 0/7] elantech: various improvements for 6-byte protocol Éric Piel
2010-06-21 21:01 ` [PATCH 1/7] elantech: Describe further the protocol Éric Piel
2010-06-21 21:02 ` [PATCH 2/7] [NEEDS TEST] elantech: discard the first 2 positions reports for some firmwares Éric Piel
2010-06-21 21:03 ` [PATCH 3/7] elantech: distinguish various hardware/firmware versions Éric Piel
2010-06-21 21:04 ` [PATCH 4/7] elantech: implement data check for 6-byte protocol Éric Piel
2010-06-21 21:05 ` [PATCH 6/7] elantech: export pressure and width when supported Éric Piel
2010-06-21 21:06 ` [PATCH 7/7] elantech: average the two coordinates when 2 fingers Éric Piel
2010-07-21  3:36   ` Dmitry Torokhov
2010-07-30 18:55     ` Éric Piel
2010-07-30 21:01       ` Henrik Rydberg
2010-07-30 21:41         ` Éric Piel
2010-07-31  9:28           ` Henrik Rydberg
2010-07-31  9:33             ` Dmitry Torokhov
2010-07-31 12:49               ` Henrik Rydberg
2010-07-31 23:00                 ` Éric Piel
2010-08-01  7:52                   ` Henrik Rydberg
2010-07-31 19:56           ` Chris Bagwell
     [not found]         ` <AANLkTi=cEEx-5eQPbRYvMMaECvXKQ+i-e0Eaw_g4JY7=@mail.gmail.com>
2010-07-31 23:04           ` Éric Piel
2010-08-01  9:37             ` Henrik Rydberg
2010-08-01 11:28               ` Éric Piel
2010-08-01 13:57                 ` Henrik Rydberg
2010-08-02  8:17                   ` Éric Piel
2010-08-02 10:02                     ` Henrik Rydberg
2010-08-02 11:12                       ` Éric Piel
2010-08-02 11:22                         ` Henrik Rydberg
2010-08-02 11:33                           ` Éric Piel
2010-08-02 11:46                             ` Henrik Rydberg
2010-08-02 12:13                               ` Éric Piel
2010-08-02 12:29                                 ` Henrik Rydberg [this message]
2010-08-02 12:46                                   ` Éric Piel
2010-08-02 13:03                                     ` Henrik Rydberg
2010-08-02 13:23                                       ` Éric Piel
2010-08-02 14:12                                         ` Henrik Rydberg
2010-08-02 16:39                                       ` Dmitry Torokhov
2010-08-02 17:15                                         ` Henrik Rydberg
2010-08-08 22:51                                         ` Éric Piel
2010-08-08 22:52                                           ` [PATCH 07/10] elantech: Report multitouch with proper ABS_MT messages Éric Piel
2010-08-08 22:53                                           ` [PATCH 08/10] elantech: track finger to distinguish coordinates in 2-finger report Éric Piel
2010-08-08 22:54                                           ` [PATCH 09/10] elantech: remove support for proprietary X driver Éric Piel
2010-08-08 22:55                                           ` [PATCH 10/10] elantech: don't take into account the border size in the calculations Éric Piel
2010-08-02 16:26                           ` [PATCH 7/7] elantech: average the two coordinates when 2 fingers Dmitry Torokhov
2010-08-02 17:05                             ` Henrik Rydberg
2010-08-01  7:36           ` Henrik Rydberg
2010-06-21 21:07 ` [PATCH 5/7] elantech: report position also with 3 fingers Éric Piel
2010-07-21  3:38   ` Dmitry Torokhov
2010-07-30 18:37     ` Éric Piel

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=4C56BA13.3030104@euromail.se \
    --to=rydberg@euromail.se \
    --cc=E.A.B.Piel@tudelft.nl \
    --cc=chris@cnpbagwell.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=rafl@debian.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.