Red Hat Bugzilla – Bug 873721
two-finger scrolling not working on hp8470p
Last modified: 2013-09-23 03:46:55 EDT
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.
Created attachment 639407 [details] xorg.log
(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
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
(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.
$ 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.
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/
Created attachment 647712 [details] evemu-describe
(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.
(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.
Created attachment 647749 [details] edge-horizontal
Created attachment 647751 [details] edge-vertical
Created attachment 647753 [details] two-horizontal
Created attachment 647754 [details] two-vertical
(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)
(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.
I really need a new recording from this device, the two-finger vertical scroll recording only shows one touchpoint show up.
Created attachment 685042 [details] twofinger-vertical-event.log
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?
(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.
Created attachment 685830 [details] tmview-twofinger-scroll video
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.
OK so moving to 6.5.