Bug 1071697 - synaptics MT axes are initialized with the wrong axis number
Summary: synaptics MT axes are initialized with the wrong axis number
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: xorg-x11-drv-synaptics
Version: 6.6
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Peter Hutterer
QA Contact: Desktop QE
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-03-02 23:40 UTC by Peter Hutterer
Modified: 2014-10-14 04:53 UTC (History)
1 user (show)

Fixed In Version: xorg-x11-drv-synaptics-1.7.5.901-2.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-10-14 04:53:02 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2014:1376 normal SHIPPED_LIVE xcb-util, xorg-x11-drivers, and mesa bug fix and enhancement update 2014-10-14 01:11:03 UTC

Description Peter Hutterer 2014-03-02 23:40:11 UTC
Description of problem:
Synaptics on RHEL 6 unconditionally undefines SMOOTH_SCROLLING because of limitations of the rest of the xorg stac. The DeviceInitTouch function relies on SMOOTH_SCROLLING to be defined when multitouch is present (which is the historical sequence). With it missing, the number of axes the device has is not high enough to initialize multitouch axes.

Specifically:
              int axnum = 4 + i;  /* Skip x, y, and scroll axes */

Should be 2 + i, because the two smooth scrolling axes are missing.

Version-Release number of selected component (if applicable):
xorg-x11-drv-synaptics-1.6.2-13.el6

How reproducible:
1. Start up an X server with a multitouch-capable touchpad. Run xinput list "SynPS/2 Synaptics TouchPad" and look at the axis description for multitouch axes. It'll show -1, -1 as axis range
2. disable all gestures in the driver: 
synclient VertTwoFingerScroll=0 ClickFinger1=0 ClickFinger2=0 ClickFinger3=0 TapAndDragGesture=0 TapButton1=0 TapButton2=0 TapButton3=0
3. run xinput test-xi2, move into the window, then use two fingers. The touch updates will have axes 0, 1, and 4+ set.

Actual results:
The MT axes are not initialized with the correct axis ranges, the server will refuse such axes on init. Events still have the axis values in them though.

Expected results:
Correct number of axes on the device. 

Additional info:
This bug is unlikely to be an issue for clients, since RHEL6 does not support multi-touch, and to get touch events client would have to disable scrolling, tapping, etc. on the touchpad driver.

This bug is more visible on newer servers that print a warning to the log if a driver tries to initialize an axis that exceeds the number of axes on the device.

Comment 2 Peter Hutterer 2014-05-05 04:11:56 UTC
MODIFIED

xorg-x11-drv-synaptics-1.7.5.901-2.el6 is available in brew

Comment 5 errata-xmlrpc 2014-10-14 04:53:02 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2014-1376.html


Note You need to log in before you can comment on or make changes to this bug.