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

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

 



Thanks Benjamin. This will get me down a new path. I was very uncertain about the quirk and I am grateful you pointed it out.

On Jun 21, 2012, at 3:31 PM, Benjamin Tissoires wrote:
3) you seem to use very old kernels.

Yes, it is due to our priorities of delivering a system to our customers that is stable, that we have time to do complete system regression testing, and most importantly, our embedded system's distribution must work across several versions of the product with slightly different video and network interfaces. Right now two of my target systems have ATI graphics, in one I have to use the 1.10 fglrx drivers. On the other I have to use 1.12 fglrx drivers. The 1.10 driver modules do not build past around kernel 2.6.38ish because of changes in the kernel headers to change smp locking. The newest version of fglrx does not support both chip sets on my target machines. The matrix of which kernel is available becomes limited.

I would like to be able to do it different, but our products last around ten years or more in some cases. In a product delivery environment of our type, we just can't be idealists, or we would never have a product to sell.

- rely on xorg input rules system to detect your devices (though I
don't know when they added the physical path in the configuration

I haven't found this to be an automatic option. In order for us to have a panoramic surface of up to 6 screens, we have 6 X Displays. You end up this way when you have 3 graphics cards in a system as we do. Every screen has a touchscreen and in the environment we have to support directing the mouse input to the correct X Display. I have learned in the newer world of kernel and X you have this lovely affine matrix for all kinds of transformations, but not in our world yet. In order for evdev to work in our environment, I added an option ScreenNo so that I could do what the old elographics driver did and set the X display before passing off the event. We have a custom calibration utility that associates /dev/input/by-path/<dev> to an InputSection in xorg.conf that configures the ScreenNo option. Maybe there is a better way in the environment, but this is the solution that I came up with so the user doesn't have to calibrate until he adds and external touchscreen.

I know that the call I used in evdev to change to a different screen doesn't exist in the newest X server and they are relying on the matrices for the transformations. I have wondered if they have considered that with three video cards, each with its own device section in xorg.conf, will I be able to direct the press correctly? Does there definitions of screen coordinate cross across X Display boundaries?

Best regards and thanks again. I will get rid of the quirk solution and try again.

Donald



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