|Summary:||10" eGalax USB Touchscreen Not Working Properly|
|Product:||xorg||Reporter:||Pat Suwalski <pat>|
|Component:||Input/evdev||Assignee:||Peter Hutterer <peter.hutterer>|
|Status:||RESOLVED NOTOURBUG||QA Contact:||Xorg Project Team <xorg-team>|
|i915 platform:||i915 features:|
Description Pat Suwalski 2009-05-13 15:51:45 UTC
10" eGalax USB Touchscreen USB ID: 0eef:0001 This bug is directly related to bug #21725. The same steps are required to make it work properly. However, there is an additional issue that is unique to this unit. With this piece of hardware, printing out the value of ev->code in the event handler shows that the X and Y absolute events actually pass code 2 and 3 rather than 0 (ABS_X) and 1 (ABS_Y). Proper behaviour can be obtained by adding the following block: if (ev->code == 2) ev->code = ABS_X; if (ev->code == 3) ev->code = ABS_Y; in evdev.c circa line 400. The EV_ABS block then sets the abs variable and things work out. This is obviously a hack, but perhaps a better solution can be developed? Perhaps this is a problem with evdev.c or usbtouchpad.c in the kernel?
Comment 1 Pat Suwalski 2009-05-14 15:51:35 UTC
This change also enables another 10" touchscreen to work. "TouchPack Resistive Touch Screen" USB: 1bfd:1688. The X.org log reports this device as "HID TOUCH HID Touch Panel".
Comment 2 Pat Suwalski 2009-05-15 12:08:51 UTC
This axis situation sounds an awful lot like this issue, albeit with a different X driver: https://bugzilla.redhat.com/show_bug.cgi?id=473144
Comment 3 Peter Hutterer 2009-05-18 06:01:51 UTC
Sorry, this really needs to be fixed in the kernel. I don't want to hack around broken devices in evdev.