[PATCH]: mtdev could be disabled at configuration

Benjamin Tissoires benjamin.tissoires at gmail.com
Tue Jun 11 05:33:32 PDT 2013


On Tue, Jun 11, 2013 at 12:40 PM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> On Tue, 11 Jun 2013 12:10:05 +0200
> Benjamin Tissoires <benjamin.tissoires at gmail.com> wrote:
>
>> On Tue, Jun 11, 2013 at 9:41 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
>> > On Tue, 11 Jun 2013 09:01:48 +0200
>> > Benjamin Tissoires <benjamin.tissoires at gmail.com> wrote:
>> >
>> >> On Mon, Jun 10, 2013 at 8:42 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
>> >> > On Fri, 7 Jun 2013 12:11:14 +0200
>> >> > Marc Chalain <marc.chalain at gmail.com> wrote:
>> >> >
>> >> >> mtdev is not necessary on some device (desktop or set-top-box). For
>> >> >> embedded solution the minimum of dependencies is required. "configure"
>> >> >> accepts the --disable-mtdev option.
>> >> >
>> >> > Hi Marc,
>> >> >
>> >> > with this patch, if weston is compiled with --disable-mtdev, it looks
>> >> > like it will still happily open multitouch devices, expose them to
>> >> > Wayland clients, and feed them garbage or fail or whatever. Right?
>> >>
>> >> Hi Pekka,
>> >>
>> >> no. mtdev is a compatibility layer for converting very rare
>> >> touchscreen using the multitouch protocol A into the mostly used
>> >> multitouch protocol B.
>> >> To my mind, only legacy devices (ntrig 0001 and few others) use the protocol A.
>> >> So without mtdev, wayland will open and handle most of the multitouch
>> >> screen happily.
>> >>
>> >> >
>> >> > I think the proper approach is to change the configure option into
>> >> > --disable-multitouch or --disable-touchscreen, which would not only
>> >> > drop the dependency to mtdev, but also make Weston ignore all
>> >> > touchscreen devices since it will not be able to handle them.
>> >>
>> >> Without mtdev, wayland should only ignore multitouch screen not
>> >> presenting the ABS_MT_SLOT axis.
>> >> Those relying on SYN_MT_REPORT do not provide tracking (which is done by mtdev).
>> >>
>> >> So my guess is that if you detect multitouch screens by looking at
>> >> ABS_MT_SLOT, then everything will be fine whether or not you have
>> >> mtdev:
>> >> - multitouch B screens will correctly be handled
>> >> - multitouch A screens will be processed as a single touch screen,
>> >> which is not a problem because the kernel provides single touch
>> >> emulation since the early days of multitouch. And if mtdev is present,
>> >> then it will show the ABS_MT_SLOT axis, leading to the previous case.
>> >>
>> >> Bonus point, mtdev has not been updated since a long time, and is
>> >> missing the bits allowing you to retrieve the initial per-slot states.
>> >> And you may find useful to retrieve the current states when weston
>> >> launches.
>> >
>> > Thank you for clarifying that, Benjamin.
>> >
>> > Does this mean that we need explicit single-touch support in Weston?
>>
>> After giving a quick look at evdev.c, it appears that single touch
>> devices are already treated in the same way tablets (with stylus) are.
>> So, single touch devices are seen from weston in the same way they
>> have been seen in Xorg since the beginning: as absolute input devices.
>>
>> Then, it's just a matter of deciding whether we want to inform the
>> client if the source of the event is a finger or a pen.
>
> Right... except we do not support tablets at all at the moment. We miss
> the whole protocol for tablets. Wayland (not just Weston) only has
> support for touchscreens so far, in addition to keyboards and relative
> pointing devices.
>
> evdev.c's device type recognition is just a handful of ad hoc
> heuristics for now, written only for touschscreens, keyboards, and
> mice/touchpads, and trying to ignore everything else.

Right, the current recognition seems to be even worth than what udev
does (in the sense that it is not a complete characterization, no
offense).
I followed the thread from David Herrman about libinputmapper and
hopefully, we will get in the end a more robust detection of input
devices.

>
>> > I don't think we have that yet. Everything touchy goes through mtdev,
>> > which makes also real single-touch devices look like multitouch devices
>> > except they never report more than one contact. Do I understand that
>> > right?
>>
>> evdev.c detects "touch" devices by looking at ABS_MT_SLOT. But mtdev
>> does not transform single touch device into pseudo-multitouch devices.
>> So I would say that those single touch devices are not treated as
>> "touch" today.
>
> Ok, so probably they would not work anyway atm.
>
> Which means that dropping mtdev loses only some rare multitouch
> devices, which do not advertise ABS_MT_SLOT, and hence will get
> properly ignored. Right?

right :)

>
> I wonder if single-touch devices get detected as touchpads. Depends on
> if they have any keys, it seems. :-)

They should not:
the udev mapping for touchpads rely on BTN_TOOL_FINGER, so normally,
the kernel will not set this property for single touch screen (we try
to not break existing in the kernel, and the existing detection
mechanism rely on BTN_TOOL_FINGER...). But again, this is the theory
:)

Cheers,
Benjamin

>
>> > Marc, in any case, I think you should check that Weston correctly
>> > ignores touch devices it cannot support without mtdev, as per
>> > Benjamin's instructions above.
>> >
>> > Retrieving current state is a matter for another time.
>> >
>>
>> Oh yes. FYI, I still did not found the time to finalize the patches for Xorg :)
>
>
> Thanks,
> pq


More information about the wayland-devel mailing list