linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Henrik Rydberg <rydberg@euromail.se>
To: Benjamin Tissoires <tissoire@cena.fr>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Ping Cheng <pinglinux@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-input@vger.kernel.org,
	Mika Kuoppala <mika.kuoppala@nokia.com>,
	Peter Hutterer <peter.hutterer@who-t.net>,
	Stephane Chatty <chatty@enac.fr>,
	Rafi Rubin <rafi@seas.upenn.edu>,
	Michael Poole <mdpoole@troilus.org>
Subject: Re: [PATCH 0/2] input: mt: Add EVIOC mechanism for MT slots
Date: Thu, 27 May 2010 14:33:08 +0200	[thread overview]
Message-ID: <4BFE6684.5030908@euromail.se> (raw)
In-Reply-To: <4BFE54D7.3090300@cena.fr>

Benjamin Tissoires wrote:
> 
> 
> Le 27/05/2010 09:24, Dmitry Torokhov a écrit :
>> On Thu, May 27, 2010 at 09:08:10AM +0200, Benjamin Tissoires wrote:
>>> Le 27/05/2010 09:03, Dmitry Torokhov a écrit :
>>>> On Wed, May 26, 2010 at 08:59:35AM -0700, Ping Cheng wrote:
>>>>> On Tue, May 25, 2010 at 1:23 PM, Dmitry Torokhov
>>>>> <dmitry.torokhov@gmail.com>   wrote:
>>>>>> On Tue, May 25, 2010 at 09:52:29PM +0200, Henrik Rydberg wrote:
>>>>>>> Dmitry Torokhov wrote:
>>>>>>>> Hi Henrik,
>>>>>>>>
>>>>>>>> On Tue, May 25, 2010 at 01:52:57PM +0200, Henrik Rydberg wrote:
>>>>>>>>> These patches are in response to the discussion about input state
>>>>>>>>> retrieval.
>>>>>>>>>
>>>>>>>>> The current EVIOCGABS method does not work with MT slots.  These
>>>>>>>>> patches provides a mechanism where a slot is first selected via
>>>>>>>>> a call
>>>>>>>>> to EVIOCSABS, after which the corresponding MT events can be
>>>>>>>>> extracted
>>>>>>>>> with calls to EVIOCGABS.
>>>>>>>>>
>>>>>>>>> The symmetric operation, to set the MT state via EVIOCSABS,
>>>>>>>>> seems to
>>>>>>>>> violate input data integrity, and is therefore not implemented.
>>>>>>>>>
>>>>>>>>
>>>>>>>> This looks sane, however the question remains - is there any
>>>>>>>> users for
>>>>>>>> this data? Like I mentioned, I can see the need to fetch state of
>>>>>>>> switches and ranges of absolute axis, and even non-multitouch
>>>>>>>> ABS values
>>>>>>>> (due to the fact that some input devices, like sliders, may stay
>>>>>>>> in a
>>>>>>>> certain position for long periods of time), but I expect
>>>>>>>> multitouch data
>>>>>>>> to be "refreshed" very quickly.
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>
>>>>>>> There were some voices addressing this issue, and the patches are
>>>>>>> here,
>>>>>>> available for whomever to pick up. Drop them if you wish, I will
>>>>>>> not send them anew.
>>>>>>>
>>>>>>
>>>>>> I'll save them in my queue but will hold off applying until I hear
>>>>>> userspace folks requesting such functionality.
>>>>>
>>>>> Hi Dmitry,
>>>>>
>>>>> You do have a valid point - the (x,y) from a touch object would most
>>>>> likely change all the time. Even if the object itself is in a steady
>>>>> state on the digitizer, i.e., without any intentional movement, the
>>>>> electronic noise would most likely lead to some (x,y) changes. So, the
>>>>> chance that we need to retrieve (x,y) is rare.
>>>>>
>>>>> However, it is possibe that when X driver starts, an object was
>>>>> already on the digitizer. And the digitizer is of such a high quality
>>>>> :), it filtered all the noises so we can not locate the touch without
>>>>> a EVIOCGABS call.
>>>>>
>>>>> Plus, from a pure coding/development point of view, it is not a bad
>>>>> practice to provide the equivalent features for _MT_ support as we did
>>>>> for the existing input devices. At least, it doesn't hurt to make the
>>>>> support consistent across devices/tools (considering touch as a new
>>>>> input device/tool).
>>>>
>>>> Ping,
>>>>
>>>> I did not say that there was a problem with the patch, I agree with it.
>>>> However if no one using this - why should we bother? Will _you_ utilize
>>>> this functionality in Wacom X driver? If so let me know and I will
>>>> merge
>>>> it.
>>>>
>>>
>>> Hi Dmitry,
>>>
>>> I'm the guy who submitted some patchs to enable multitouch in the
>>> xf86-input-evdev driver. And I think that I will use the MT_SLOTS as
>>> soon as they are available. It is much easier for the upper part to
>>> have this protocol instead of the protocol type A.
>>>
>>
>> This is not the question about slotted protocol (which is everyone
>> agrees is needed), the question is whether anyone will use EIVICGABS to
>> retrieve the initial MT values in case someone started touching the
>> device before X opened the corresponding /dev/input/eventX.
>>
> 
> Sorry for the misunderstanding.
> 
> I can see at least 2 scenarios where such feature is interesting.
> 
> Scenario n°1:
> Imagine a mt-enabled surface, like the Microsoft Surface or other big
> devices. On these tables, we can put static objects that can be
> recognized by a tag or just by their weight, size, etc. These objects
> can be put before the X server starts and may be of interest. But since
> these objects are "statics" the kernel driver does not send new values
> and the X server does not see them, until they are moved by a human.
> 
> Here, I did not understood if the patch allows us to retrieve all slots
> that are currently present on the surface or if we can have only the
> last one.
> 
> Scenario n°2:
> The Apple Magicmouse. This device is a mouse with a mt-surface on top of
> it. If the filter is good enough, the device won't send the positions of
> the fingers that are on the surface as we have quite a static position
> while handling a mouse. In the case a user starts X and has a hand on
> the mouse, the X server won't see them until they are actually moved.
> This may not be a problem but if we need to know the mt-state while
> sending the clicks, the driver can misunderstand the user aim.
> But from what I understood, if the user has only one contact on the
> surface, the slot will not be send and the X driver will be a little bit
> lost concerning the slot in use.
> 
> So, I don't know if those patches will fit my needs, but for me, it is
> clear that the X server will need to retrieve the state of the
> mt-surface when the device is initialized.
> 
> I hope I'm not too far from the topic....
> 
> Cheers,
> Benjamin

Thank you Benjamin, you got it all right. I thought something similar to what
you describe when writing the patches. I agree with Dmitry that in general, an
MT contact state is dynamic enough not to need much state initialization, but I
also agree with you that there are cases where it is indeed needed.

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-05-27 12:33 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-25 11:52 [PATCH 0/2] input: mt: Add EVIOC mechanism for MT slots Henrik Rydberg
2010-05-25 11:52 ` [PATCH 1/2] input: mt: Add method to extract the MT slot state Henrik Rydberg
2010-05-25 11:52   ` [PATCH 2/2] input: evdev: Add EVIOC mechanism " Henrik Rydberg
2010-05-25 17:34 ` [PATCH 0/2] input: mt: Add EVIOC mechanism for MT slots Dmitry Torokhov
2010-05-25 19:52   ` Henrik Rydberg
2010-05-25 20:23     ` Dmitry Torokhov
2010-05-26 15:59       ` Ping Cheng
2010-05-27  7:03         ` Dmitry Torokhov
2010-05-27  7:08           ` Benjamin Tissoires
2010-05-27  7:24             ` Dmitry Torokhov
2010-05-27 11:17               ` Benjamin Tissoires
2010-05-27 12:33                 ` Henrik Rydberg [this message]
2010-05-27 22:59           ` Ping Cheng
2010-05-27 23:12             ` Dmitry Torokhov

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=4BFE6684.5030908@euromail.se \
    --to=rydberg@euromail.se \
    --cc=akpm@linux-foundation.org \
    --cc=chatty@enac.fr \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=mdpoole@troilus.org \
    --cc=mika.kuoppala@nokia.com \
    --cc=peter.hutterer@who-t.net \
    --cc=pinglinux@gmail.com \
    --cc=rafi@seas.upenn.edu \
    --cc=tissoire@cena.fr \
    /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).