Bug 873721 - two-finger scrolling not working on hp8470p
two-finger scrolling not working on hp8470p
Status: CLOSED CANTFIX
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: xorg-x11-drv-synaptics (Show other bugs)
6.4
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Peter Hutterer
Desktop QE
:
Depends On: 903081
Blocks: 960058
  Show dependency treegraph
 
Reported: 2012-11-06 09:47 EST by Tomas Pelka
Modified: 2013-09-23 03:46 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Known Issue
Doc Text:
Two-finger scrolling is default for devices that announce two-finger capability. However, on certain machines, although the touchpad announces two-finger capability, events generated by the device only contain a single finger position at a time and two-finger scrolling therefore does not work. To work around this problem, use edge scrolling instead.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-05-22 18:31:12 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
xorg.log (149.41 KB, text/plain)
2012-11-06 09:55 EST, Tomas Pelka
no flags Details
evemu-describe (826 bytes, text/plain)
2012-11-19 06:52 EST, Tomas Pelka
no flags Details
edge-horizontal (121.86 KB, text/plain)
2012-11-19 08:12 EST, Tomas Pelka
no flags Details
edge-vertical (33.35 KB, text/plain)
2012-11-19 08:18 EST, Tomas Pelka
no flags Details
two-horizontal (30.93 KB, text/plain)
2012-11-19 08:19 EST, Tomas Pelka
no flags Details
two-vertical (20.21 KB, text/plain)
2012-11-19 08:20 EST, Tomas Pelka
no flags Details
twofinger-vertical-event.log (41.00 KB, text/plain)
2013-01-22 06:00 EST, Tomas Pelka
no flags Details
tmview-twofinger-scroll video (432.14 KB, video/ogg)
2013-01-23 06:08 EST, Tomas Pelka
no flags Details

  None (edit)
Description Tomas Pelka 2012-11-06 09:47:49 EST
Description of problem:
two-finger scrolling not working on hp8470p

Version-Release number of selected component (if applicable):
kernel-2.6.32-338.el6.x86_64
xorg-x11-drv-synaptics-1.6.2-11.el6.x86_64
xorg-x11-server-Xorg-1.13.0-7.el6

How reproducible:
100%

Steps to Reproduce:
1. system-preferences-mouse
2. touchpad tab
3. check Two-finger scrolling 
  
Actual results:
not able to scroll with two fingers

Expected results:
should be able to scroll

Additional info:
xinput list-props 'SynPS/2 Synaptics TouchPad'
Device 'SynPS/2 Synaptics TouchPad':
	Device Enabled (136):	1
	Coordinate Transformation Matrix (138):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (261):	1
	Device Accel Constant Deceleration (262):	2.500000
	Device Accel Adaptive Deceleration (263):	1.000000
	Device Accel Velocity Scaling (264):	12.500000
	Synaptics Edges (282):	1769, 5431, 1653, 4671
	Synaptics Finger (283):	25, 30, 256
	Synaptics Tap Time (284):	180
	Synaptics Tap Move (285):	242
	Synaptics Tap Durations (286):	180, 180, 100
	Synaptics ClickPad (287):	0
	Synaptics Tap FastTap (288):	0
	Synaptics Middle Button Timeout (289):	75
	Synaptics Two-Finger Pressure (290):	282
	Synaptics Two-Finger Width (291):	7
	Synaptics Scrolling Distance (292):	110, 110
	Synaptics Edge Scrolling (293):	1, 1, 0
	Synaptics Two-Finger Scrolling (294):	0, 0
	Synaptics Move Speed (295):	1.000000, 1.750000, 0.036265, 40.000000
	Synaptics Edge Motion Pressure (296):	30, 160
	Synaptics Edge Motion Speed (297):	1, 441
	Synaptics Edge Motion Always (298):	0
	Synaptics Off (299):	1
	Synaptics Locked Drags (300):	0
	Synaptics Locked Drags Timeout (301):	5000
	Synaptics Tap Action (302):	0, 0, 0, 0, 1, 3, 2
	Synaptics Click Action (303):	1, 1, 1
	Synaptics Circular Scrolling (304):	0
	Synaptics Circular Scrolling Distance (305):	0.100000
	Synaptics Circular Scrolling Trigger (306):	0
	Synaptics Circular Pad (307):	0
	Synaptics Palm Detection (308):	0
	Synaptics Palm Dimensions (309):	10, 200
	Synaptics Coasting Speed (310):	0.000000, 50.000000
	Synaptics Pressure Motion (311):	30, 160
	Synaptics Pressure Motion Factor (312):	1.000000, 1.000000
	Synaptics Grab Event Device (313):	1
	Synaptics Gestures (314):	1
	Synaptics Capabilities (315):	1, 1, 1, 1, 1, 1, 1
	Synaptics Pad Resolution (316):	1, 1
	Synaptics Area (317):	0, 0, 0, 0
	Synaptics Noise Cancellation (318):	27, 27
	Device Product ID (256):	2, 7
	Device Node (257):	"/dev/input/event7"

# evemu-describe /dev/input/event7
N: SynPS/2 Synaptics TouchPad
I: 0011 0002 0007 01b1
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 07 00 00 00 00 00
B: 01 20 64 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 11 00 80 60 02
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 1472 5728 0 0
A: 01 1408 4916 0 0
A: 18 0 255 0 0
A: 1c 0 15 0 0
A: 2f 0 1 0 0
A: 35 1472 5728 0 0
A: 36 1408 4916 0 0
A: 39 0 65535 0 0

Please let me know if you need any other information.
Comment 1 Tomas Pelka 2012-11-06 09:55:37 EST
Created attachment 639407 [details]
xorg.log
Comment 2 Peter Hutterer 2012-11-07 19:07:48 EST
(In reply to comment #0)
> Additional info:
> xinput list-props 'SynPS/2 Synaptics TouchPad'
> Device 'SynPS/2 Synaptics TouchPad':
[...]
> 	Synaptics Edge Scrolling (293):	1, 1, 0
> 	Synaptics Two-Finger Scrolling (294):	0, 0

This makes me wonder - edge scrolling is still on, two-finger scrolling is still off. So this suggests a client-side issue.

does two-finger (vertical) scrolling work if you run
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Edge Scrolling" 0 0 0
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Scrolling" 0 1 0

use 1 1 if you want horiz scrolling as well
Comment 3 Tomas Pelka 2012-11-08 05:21:16 EST
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Scrolling" 0 1 1
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  20
  Current serial number in output stream:  21

xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Scrolling" 0 1 0
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  20
  Current serial number in output stream:  21

synclient 
Parameter settings:
    LeftEdge                = 1769
    RightEdge               = 5431
    TopEdge                 = 1653
    BottomEdge              = 4671
    FingerLow               = 25
    FingerHigh              = 30
    FingerPress             = 256
    MaxTapTime              = 180
    MaxTapMove              = 242
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    FastTaps                = 0
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 110
    HorizScrollDelta        = 110
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 1
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0362647
    TrackstickSpeed         = 40
    EdgeMotionMinZ          = 30
    EdgeMotionMaxZ          = 160
    EdgeMotionMinSpeed      = 1
    EdgeMotionMaxSpeed      = 441
    EdgeMotionUseAlways     = 0
    TouchpadOff             = 1
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 0
    RBCornerButton          = 0
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 2
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 200
    CoastingSpeed           = 0
    CoastingFriction        = 50
    PressureMotionMinZ      = 30
    PressureMotionMaxZ      = 160
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 1
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 27
    VertHysteresis          = 27
    ClickPad                = 0
Comment 4 Peter Hutterer 2012-11-13 00:23:15 EST
(In reply to comment #3)
> xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger
> Scrolling" 0 1 0
> X Error of failed request:  BadMatch (invalid parameter attributes)
>   Major opcode of failed request:  131 (XInputExtension)
>   Minor opcode of failed request:  57 ()
>   Serial number of failed request:  20
>   Current serial number in output stream:  21

sorry, my fault, this should only have two values, copy/paste error.
Try synclient VertEdgeScroll=1, that enables two-finger vertical scrolling too.
Comment 5 Tomas Pelka 2012-11-13 02:32:28 EST
$ synclient | grep Scroll
    VertScrollDelta         = 110
    HorizScrollDelta        = 110
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0

Hmm HorizontalEdge scrolling is working now even if it is on 0, TwoFinger scrolling still not working.
Comment 6 Peter Hutterer 2012-11-13 05:39:05 EST
weird. can I get some evemu recordings please, as separate files:
* the device description
* two-finger scrolling, vertical
* two-finger scrolling, horizontal
* edge scroll, vertical
* edge scroll, horizontal

You'll need to do those from the tty to avoid the device grab.

RHEL rpms are here: http://people.redhat.com/~phuttere/rpms/evemu/
Comment 7 Tomas Pelka 2012-11-19 06:52:36 EST
Created attachment 647712 [details]
evemu-describe
Comment 8 Tomas Pelka 2012-11-19 07:28:48 EST
(In reply to comment #6)
> weird. can I get some evemu recordings please, as separate files:
> * the device description
attached
> * two-finger scrolling, vertical
> * two-finger scrolling, horizontal
> * edge scroll, vertical
> * edge scroll, horizontal
> 
> You'll need to do those from the tty to avoid the device grab.
> 
> RHEL rpms are here: http://people.redhat.com/~phuttere/rpms/evemu/

Not able to record with evemu-1.0.10-1.el6, evemu-record produce empty files.
Comment 9 Tomas Pelka 2012-11-19 08:10:14 EST
(In reply to comment #8)
> (In reply to comment #6)
> > weird. can I get some evemu recordings please, as separate files:
> > * the device description
> attached
> > * two-finger scrolling, vertical
> > * two-finger scrolling, horizontal
> > * edge scroll, vertical
> > * edge scroll, horizontal
> > 
> > You'll need to do those from the tty to avoid the device grab.
> > 
> > RHEL rpms are here: http://people.redhat.com/~phuttere/rpms/evemu/
> 
> Not able to record with evemu-1.0.10-1.el6, evemu-record produce empty files.

OK I needed to be in VT to get records.
Comment 10 Tomas Pelka 2012-11-19 08:12:40 EST
Created attachment 647749 [details]
edge-horizontal
Comment 11 Tomas Pelka 2012-11-19 08:18:02 EST
Created attachment 647751 [details]
edge-vertical
Comment 12 Tomas Pelka 2012-11-19 08:19:33 EST
Created attachment 647753 [details]
two-horizontal
Comment 13 Tomas Pelka 2012-11-19 08:20:08 EST
Created attachment 647754 [details]
two-vertical
Comment 14 Peter Hutterer 2012-11-20 23:36:01 EST
(In reply to comment #13)
> Created attachment 647754 [details]
> two-vertical

this one doesn't appear to have two touchpoints in it? afaict the two-finger scrolling does work with two-horizontal event sequence since it gives me button 4/5 events.

To clarify again:
synclient VertEdgeScroll=0 VertTwoFingerScroll=1
synclient HorizEdgeScroll=0 HorizTwoFingerScrol1=1

Then start a plain X server, xev -root and try to scroll. Does xev register any button 4/5/6/7 events when scrolling? This is the test case here and it works fine (minus that event sequence which only shows one touchpoint)
Comment 15 Tomas Pelka 2012-11-27 10:32:32 EST
(In reply to comment #14)
> (In reply to comment #13)
> > Created attachment 647754 [details]
> > two-vertical
> 
> this one doesn't appear to have two touchpoints in it? afaict the two-finger
> scrolling does work with two-horizontal event sequence since it gives me
> button 4/5 events.
> 
> To clarify again:
> synclient VertEdgeScroll=0 VertTwoFingerScroll=1
> synclient HorizEdgeScroll=0 HorizTwoFingerScrol1=1
> 
> Then start a plain X server, xev -root and try to scroll. Does xev register
> any button 4/5/6/7 events when scrolling? This is the test case here and it
> works fine (minus that event sequence which only shows one touchpoint)

No output from xev.
Comment 17 Peter Hutterer 2013-01-21 23:59:41 EST
I really need a new recording from this device, the two-finger vertical scroll recording only shows one touchpoint show up.
Comment 19 Tomas Pelka 2013-01-22 06:00:57 EST
Created attachment 685042 [details]
twofinger-vertical-event.log
Comment 20 Peter Hutterer 2013-01-23 01:29:57 EST
I think this is a hardware and/or kernel issue. I assume that you did try to do a two-finger scroll and while slot events show up (002f in third column), they only do so shortly and not as expected from a two-finger scroll event. The first event sequence is one finger moving down on the touchpad, then just 4 events with two fingers. On the next sequence there is only 2 overlapping events. This indicates incorrect tracking by the HW or the kernel.

A similar issue can also be found in the horizontal event sequence you submitted earlier.

You can run https://github.com/whot/mtview to show the touch events as they appear on the device.

If I replay your event sequence and record it, I get the same output, so we can rule out any issues in the re-playing (after fixing Bug 903081)

If I take a known good sequence (recorded on my touchpad) and re-play it through your device, two-finger scrolling works.

so yeah, this isn't a synaptics issue, it's hw or kernel. Has this device worked in 6.3?
Comment 21 Tomas Pelka 2013-01-23 06:05:28 EST
(In reply to comment #20)
> I think this is a hardware and/or kernel issue. I assume that you did try to
> do a two-finger scroll and while slot events show up (002f in third column),
> they only do so shortly and not as expected from a two-finger scroll event.
> The first event sequence is one finger moving down on the touchpad, then
> just 4 events with two fingers. On the next sequence there is only 2
> overlapping events. This indicates incorrect tracking by the HW or the
> kernel.
> 
> A similar issue can also be found in the horizontal event sequence you
> submitted earlier.
> 
> You can run https://github.com/whot/mtview to show the touch events as they
> appear on the device.
> 
> If I replay your event sequence and record it, I get the same output, so we
> can rule out any issues in the re-playing (after fixing Bug 903081)
> 
> If I take a known good sequence (recorded on my touchpad) and re-play it
> through your device, two-finger scrolling works.
> 
> so yeah, this isn't a synaptics issue, it's hw or kernel. Has this device
> worked in 6.3?

Sorry Peter I'm not very clear what should I test, the machine wasn't ever tester against rhel6.3 but I can try.

Attachaing at least video with mtview, don't know what is an expected result.
Comment 22 Tomas Pelka 2013-01-23 06:08:56 EST
Created attachment 685830 [details]
tmview-twofinger-scroll video
Comment 23 Peter Hutterer 2013-01-23 23:03:36 EST
ok, this video definitely shows that this is a hw issue. That first two-finger horizonal movement (0:02 to 0:04) should show two lines. What you get instead is one touchpoint at a time, jumping between the two finger (and outliers as well, apparently).

This isn't something we can fix in the driver, especially not in the 6.4 timeframe.

I need to check if we can do legacy two-finger scrolling here (BTN_TOOL_DOUBLETAP) but the touchpad does announce multi-touch capabilities so the driver uses those by default.
Comment 24 Tomas Pelka 2013-01-24 04:27:44 EST
OK so moving to 6.5.

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