Dear Jiri,
over the last few months I have been working on HID quirks for a
bunch of multitouch devices: NTrig, two flavours of Stantum devices,
3M, Acer T230H. For each of these I have working code, which I should
be able to submit real soon now.
However, people are asking me questions about why a specific driver
is needed for each device. Answers are starting to emerge, and it
looks like they might lead to some work on the Linux HID code itself:
- the one-to-one mapping between HID and evdev is stretched to its
limits with these devices that have several times the same group of
HID fields in the same event: an event is made of fingers, each
finger is made of an X, a Y and a few other fields. We need a
mechanism to emit SYN_MT_REPORT between fingers.
- furthermore, some fingers have to be discarded because they are
placeholders with no valid data, and we know if to dump them only
when they have been fully parsed. Therefore, we need a mechanism to
cache finger data until the decision is made. Currently, the caching
mechanism has to be device-dependent because the fields are not
exactly the same and they come in a device-dependent order.
- for all these devices, it is very tempting to have a touchscreen
emulation so as to use them with existing software (X.org,
particularly). Rafi and I share the idea that this should be done by
creating two evdev nodes: a backward-compatible touchscreen, and a
multitouch one. Most of the corresponding code could be shared among
drivers. However, the algorithm for producing the touchscreen events
differs from one device to another and we need to support this.
Any opinions or suggestions?
Cheers
Stéphane
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html