Re: /dev/input/by-path/<link> unreliable with MultiTouch device

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

 



Hello Donald,

I think that you are encountering at least 3 problems:
1) your devices are not correctly handled by the kernel
2) solving the handling of multitouch devices by adding the quirk
HID_QUIRK_MULTI_INPUT is __really__ a bad idea in your case
3) you seem to use very old kernels.

So:
1) between 2.6.34 and 2.6.39, Mosart devices are handled in
hid-mosart, and since 3.0 through hid-multitouch. Using these drivers
will allow you to have a better support of your devices.
However I'm not 100% sure it won't create more than one input device
if your hardware declares more than one interface.

2) Using the quirk HID_QUIRK_MULTI_INPUT is the exact opposite of what
you want to do -> it creates several inputs when it sees several
touches -> you then have a lot of inputs with unusable stuff.

3) By using a kernel >=3.4 and by modprobing hid-multitouch, your
mosart devices will be correctly handled by the kernel.

However, if you can not update your kernel here are some ideas:
- use the right module for your devices (hid-mosart or hid-multitouch)
- patch your kernel (> 2.6.35) using the patches here:
http://www.lii-enac.fr/en/architecture/linux-input/multitouch-howto.html#get
(but I did not tested old kernel releases) -> you will get the same
input layer for multitouch than a 3.4 kernel (the older the kernel is,
the more intrusive it is).
- work on an udev rule that detect the physical path, and creates a
symlink /dev/input/mosart-X
- rely on xorg input rules system to detect your devices (though I
don't know when they added the physical path in the configuration
options).

Cheers,
Benjamin



On Thu, Jun 21, 2012 at 4:52 PM, Donald Kayser <linux@xxxxxxxxxx> wrote:
> Hello All,
>
> I am part of development of a product that uses touchscreens extensively. We
> have to maintain touchscreen calibration and X Display association across
> boots. We support up to six screens, 3 internal to our product, 3 external
> to our product. All internal screens have touchscreens with cables that
> don't move, so using the device /dev/input/by-path/<devicelink> I could
> modify xorg.conf with an InputSection and associate the screen and
> touchscreen, include calibration, and every time the user returned, it was
> already calibrated and working correctly. It has worked great until we
> started adding multi-touch devices. The line of multi-touch devices we are
> using is manufactured my MosArt.
>
> I added the defines for the products in my local kernel tree's
> driver/hid/hid-ids.h and added the quirk for HID_QUIRK_MULTI_INPUT in
> hid-quirks.c. With the kernel 2.6.39.4 and earlier to 2.6.32.n, there is
> confusion with the /dev/input/by-path/<devlink>.  These multi-touch devices
> show up with four entries in /dev/input/<dev>. From looking at the output of
> lsinput, two of the entries have identical information with regards to event
> bits. Only one of these identical entries in /dev/input/<dev> actually work;
> one reports 13 axis, one reports 3 axis. When the
> /dev/input/by-path/<devlink> points to the 'working' /dev/input/<dev> all is
> fine. This only happens 50% of the time and with three screens it is not
> likely to get all three right on any boot.
>
> So, is this a good place to ask this question? What other information would
> be beneficial? I purposely left out a bunch of debug info so not to get too
> noisy.
>
> Thanks in advance,
> Donald Kayser
> linux at kayser dot net
> --
> 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
--
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