Comment 2 for bug 322946

Revision history for this message
Julien Plissonneau Duquene (julien-plissonneau-duquene) wrote :

Binary package hint: xserver-xorg-input-evdev

Also reported upstream: https://bugs.freedesktop.org/show_bug.cgi?id=19819

Problem located in evdev.c / EvdevCacheCompare()

Symptom: USB touchscreen no longer works when switching from X to another
virtual console and then back to X. Sample log message:
(EE) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB
Touchmonitor Interface: Device has changed - disabling.
(WW) Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB
Touchmonitor Interface: Release failed (Invalid argument)

Cause: EvdevCacheCompare fails because it also compares all values of
input_absinfo structure, which include the last tapped position of the
touchscreen (.value field). This is never updated in the cache, and anyway it
could change anytime if the screen is touched while away from the X virtual
console.

Solution: Exclude .value from comparison. One-liner patch attached.