Bug 21726 - 10" eGalax USB Touchscreen Not Working Properly
Summary: 10" eGalax USB Touchscreen Not Working Properly
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/evdev (show other bugs)
Version: 7.4 (2008.09)
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Peter Hutterer
QA Contact: Xorg Project Team
Depends on:
Reported: 2009-05-13 15:51 UTC by Pat Suwalski
Modified: 2009-05-18 06:01 UTC (History)
0 users

See Also:
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:

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.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.