[RFC] HID and multitouch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux