Thread (5 messages) flat view 5 messages, 2 authors, 2012-06-28

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

From: Donald Kayser <hidden>
Date: 2012-06-21 15:05:31

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help