From: Dmitry Torokhov on
On Monday 24 May 2010 10:06:15 am Ping Cheng wrote:
> On Mon, May 24, 2010 at 8:59 AM, Dmitry Torokhov
>
> <dmitry.torokhov(a)gmail.com> wrote:
> > On Sun, May 23, 2010 at 11:07:27PM -0700, Ping Cheng wrote:
> >> On Sun, May 23, 2010 at 9:58 PM, Peter Hutterer
> >>
> >> <peter.hutterer(a)who-t.net> wrote:
> >> >> > And yes, you could add it once we find it's an issue, but by then
> >> >> > someone has already spent time to work around this. And when you
> >> >> > then start sending slot events all the time, you admit that
> >> >> > writing the workaround was just a time waster :)
> >> >>
> >> >> Work around what, exactly?
> >> >
> >> > I was referring to having a protocol where processes has to ignore
> >> > contacts already down until they've been there when a contact was
> >> > pressed (and your comment that if this becomes an issue it could be
> >> > added lateron). Now, the ignoring part needs to be written (this is
> >> > the "workaround" referred to above). if you're planning to add it
> >> > later, we need to cater for that part as well then, having two
> >> > implementations depending on the kernel versions.
> >> >
> >> > but this is just for clarification, it's a moot point anyway given
> >> > that button events have the same behaviour.
> >>
> >> This topic is outside of the _MT_ protocol discussion.
> >>
> >> However, it is indeed an issue with all filtered input events, both
> >> for MT and regular ones.
> >>
> >> I think we need to add an ioctl to enable user land driver/client to
> >> signal the kernel driver to send all events without filtering, just
> >> once. Hot-plugged devices and X driver starts after user has contacted
> >> with the device are two examples that the client would miss filtered
> >> events.
> >>
> >> Dmitry, do you think it is a valid suggestion?
> >
> > What about using EVIOCGKEY/EVIOCGSW/EVIOCGABS?
>
> Those EVIOCs only give us the static values (max/min/supported keys,
> etc.). We need their dynamic input data here, the actual x, y,
> button, pressure, etc. Am I missing something about those EVIOs?
>

Yes you are ;) Supported events are reported via EVIOCGBIT, EVIOCGKEY and
EVIOCGSW will return current state of keys/switches. As far as EVIOCGABS
goes, it also returns, besides min/max/etc, last reported _values_ of the
ABS_* events.

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Ping Cheng on
On Mon, May 24, 2010 at 10:21 AM, Dmitry Torokhov
<dmitry.torokhov(a)gmail.com> wrote:
> On Monday 24 May 2010 10:06:15 am Ping Cheng wrote:
>> >> This topic is outside of the _MT_ protocol discussion.
>> >>
>> >> However, it is indeed an issue with all filtered input events, both
>> >> for MT and regular ones.
>> >>
>> >> I think we need to add an ioctl to enable user land driver/client to
>> >> signal the kernel driver to send all events without filtering, just
>> >> once. Hot-plugged devices and X driver starts after user has contacted
>> >> with the device are two examples that the client would miss filtered
>> >> events.
>> >>
>> >> Dmitry, do you think it is a valid suggestion?
>> >
>> > What about using EVIOCGKEY/EVIOCGSW/EVIOCGABS?
>>
>> Those EVIOCs only give us the static values (max/min/supported keys,
>> etc.). �We need their dynamic input data here, the actual x, y,
>> button, pressure, etc. Am I missing something about those EVIOs?
>>
>
> Yes you are ;) Supported events are reported via EVIOCGBIT, EVIOCGKEY and
> EVIOCGSW will return current state of keys/switches. As far as EVIOCGABS
> goes, it also returns, besides min/max/etc, last reported _values_ of the
> ABS_* events.

Oh, My God! I should have listened to Mark Twain :).

Ping
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Henrik Rydberg on
Dmitry Torokhov wrote:
[...]
>>>> I think we need to add an ioctl to enable user land driver/client to
>>>> signal the kernel driver to send all events without filtering, just
>>>> once. Hot-plugged devices and X driver starts after user has contacted
>>>> with the device are two examples that the client would miss filtered
>>>> events.
>>>>
>>>> Dmitry, do you think it is a valid suggestion?
>>> What about using EVIOCGKEY/EVIOCGSW/EVIOCGABS?
>> Those EVIOCs only give us the static values (max/min/supported keys,
>> etc.). We need their dynamic input data here, the actual x, y,
>> button, pressure, etc. Am I missing something about those EVIOs?
>>
>
> Yes you are ;) Supported events are reported via EVIOCGBIT, EVIOCGKEY and
> EVIOCGSW will return current state of keys/switches. As far as EVIOCGABS
> goes, it also returns, besides min/max/etc, last reported _values_ of the
> ABS_* events.
>

Ping is not alone. :-)

But it does not work for MT events -- yet.

Henrik

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Dmitry Torokhov on
On Mon, May 24, 2010 at 07:48:00PM +0200, Henrik Rydberg wrote:
> Dmitry Torokhov wrote:
> [...]
> >>>> I think we need to add an ioctl to enable user land driver/client to
> >>>> signal the kernel driver to send all events without filtering, just
> >>>> once. Hot-plugged devices and X driver starts after user has contacted
> >>>> with the device are two examples that the client would miss filtered
> >>>> events.
> >>>>
> >>>> Dmitry, do you think it is a valid suggestion?
> >>> What about using EVIOCGKEY/EVIOCGSW/EVIOCGABS?
> >> Those EVIOCs only give us the static values (max/min/supported keys,
> >> etc.). We need their dynamic input data here, the actual x, y,
> >> button, pressure, etc. Am I missing something about those EVIOs?
> >>
> >
> > Yes you are ;) Supported events are reported via EVIOCGBIT, EVIOCGKEY and
> > EVIOCGSW will return current state of keys/switches. As far as EVIOCGABS
> > goes, it also returns, besides min/max/etc, last reported _values_ of the
> > ABS_* events.
> >
>
> Ping is not alone. :-)
>
> But it does not work for MT events -- yet.
>

Yes, this is true.

I think the most interesting is the switch data, since they may not change
at all. The rest is transient and should refresh "fairly quickly".

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Henrik Rydberg on
Dmitry Torokhov wrote:
> On Mon, May 24, 2010 at 07:48:00PM +0200, Henrik Rydberg wrote:
>> Dmitry Torokhov wrote:
>> [...]
>>>>>> I think we need to add an ioctl to enable user land driver/client to
>>>>>> signal the kernel driver to send all events without filtering, just
>>>>>> once. Hot-plugged devices and X driver starts after user has contacted
>>>>>> with the device are two examples that the client would miss filtered
>>>>>> events.
>>>>>>
>>>>>> Dmitry, do you think it is a valid suggestion?
>>>>> What about using EVIOCGKEY/EVIOCGSW/EVIOCGABS?
>>>> Those EVIOCs only give us the static values (max/min/supported keys,
>>>> etc.). We need their dynamic input data here, the actual x, y,
>>>> button, pressure, etc. Am I missing something about those EVIOs?
>>>>
>>> Yes you are ;) Supported events are reported via EVIOCGBIT, EVIOCGKEY and
>>> EVIOCGSW will return current state of keys/switches. As far as EVIOCGABS
>>> goes, it also returns, besides min/max/etc, last reported _values_ of the
>>> ABS_* events.
>>>
>> Ping is not alone. :-)
>>
>> But it does not work for MT events -- yet.
>>
>
> Yes, this is true.
>
> I think the most interesting is the switch data, since they may not change
> at all. The rest is transient and should refresh "fairly quickly".
>

Still, if one allows EVIOCSABS(ABS_MT_SLOT) to set a slot state in evdev instead
of modifying the input_dev, one could extract all ABS_MT events in sequence via
EVIOCGABS.

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