USB touchscreen is disabled when switching virtual console back to X

Bug #322946 reported by Julien Plissonneau Duquene
2
Affects Status Importance Assigned to Milestone
X.Org X server
Fix Released
Medium
xserver-xorg-input-evdev (Ubuntu)
Fix Released
High
Bryce Harrington

Bug Description

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.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

ACK, please add a comment describing why this line is needed (in the source code) and resubmit as git-formatted patch.

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.

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

Created an attachment (id=22380)
patch evdev.c (git diff)

New patch attached as requested.

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

Sorry, I wasn't clear enough. I'd like to see a patch produced with
git format-patch. This way the authorship and commit message is already there.

In the commit message, please include a reference to this bug and as much
information as you deem necessary to understand the reason for the change
(e.g. the content of your original comment).

ACK to the patch itself.

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

Created an attachment (id=22466)
patch evdev.c (git format-patch)

Revision history for this message
In , Julien Cristau (jcristau) wrote :

> --- Comment #4 from Julien Plissonneau Duquene <email address hidden> 2009-02-02 05:56:07 PST ---
> Created an attachment (id=22466)
> --> (http://bugs.freedesktop.org/attachment.cgi?id=22466)
> patch evdev.c (git format-patch)
>
getting there :)
The first line in the commit message should be a short description of
the change (something like "EvdevCacheCompare: ignore current position",
I guess) which is more meaningful than a simple bug number. The
reference to this bug can go at the end of the message.
Thanks!

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

Created an attachment (id=22478)
patch evdev.c (git format-patch again)

It would probably help to be a wee bit more specific about the expected patch format in http://www.x.org/wiki/DeveloperStart ...

Revision history for this message
In , Julien Cristau (jcristau) wrote :

> --- Comment #6 from Julien Plissonneau Duquene <email address hidden> 2009-02-02 08:01:50 PST ---
> Created an attachment (id=22478)
> --> (http://bugs.freedesktop.org/attachment.cgi?id=22478)
> patch evdev.c (git format-patch again)
>
Signed-off-by: Julien Cristau <email address hidden>

I'll let Peter push this if he's happy with it too :)

> It would probably help to be a wee bit more specific about the expected patch
> format in http://www.x.org/wiki/DeveloperStart ...
>
agreed. thanks for your perseverance :)

Revision history for this message
In , Peter Hutterer (peter-hutterer) wrote :

Pushed as 0dbb88c52b057cfdff6116060060841e4fc4abb5. Thanks for the patch (and
the patience).

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

Bug fixed (patch accepted) upstream.

Bryce Harrington (bryce)
Changed in xserver-xorg-input-evdev:
assignee: nobody → bryceharrington
importance: Undecided → High
status: New → Triaged
Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks, patch uploaded.

Changed in xserver-xorg-input-evdev:
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-evdev - 1:2.1.1-1ubuntu2

---------------
xserver-xorg-input-evdev (1:2.1.1-1ubuntu2) jaunty; urgency=low

  * Add 100_exclude_touchscreen_pos.patch as cherry-pick from upstream:
    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.
    (LP: #322946)

 -- Bryce Harrington <email address hidden> Mon, 09 Feb 2009 14:31:19 -0800

Changed in xserver-xorg-input-evdev:
status: Fix Committed → Fix Released
Changed in xorg-server:
status: Unknown → Fix Released
Changed in xorg-server:
importance: Unknown → Medium
Changed in xorg-server:
importance: Medium → Unknown
Changed in xorg-server:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.