Bug 1071697

Summary: synaptics MT axes are initialized with the wrong axis number
Product: Red Hat Enterprise Linux 6 Reporter: Peter Hutterer <peter.hutterer>
Component: xorg-x11-drv-synapticsAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.6CC: tpelka
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: xorg-x11-drv-synaptics-1.7.5.901-2.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-10-14 04:53:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

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