Bug 502548

Summary: On an Acer Aspire One, vertical scrolling does not work, regardless of 10-synaptics.fdi or touchpad settings in gnome
Product: [Fedora] Fedora Reporter: Daniel Hansen <dhansen>
Component: synapticsAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: church.jacob, fuzzie360, intralanman, jlaska, krh, oldestman, peter.hutterer, seanlkml, walovaton
Target Milestone: ---Keywords: CommonBugs
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard: https://fedoraproject.org/wiki/Common_F11_bugs#synaptics-aspire-one
Fixed In Version: 1.1.3-1.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-08-15 08:06:57 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Acer Aspire One fix
none
rpm with Acer Aspire One scrolling fix
none
Synaptic evtest capture
none
X values returned when swiping finger from middle to end of touchpad
none
test RPM with official patch from Peter none

Description Daniel Hansen 2009-05-26 05:20:14 UTC
Description of problem:
When enabled, horizontal scrolling works just great, but vertical scrolling will work for only a few seconds and only when I jam my finger into the very right-most edge of the touchpad. The dimensions seem to be off, but no amount of manual tinkering with the dimensions seems to help. Regardless of the touchpad dimensions that synclient -l reports, vertical scrolling on the touchpad will inevitably stop working after about 1-2 seconds of use.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
On an acer aspire one:
1. Enable vertical edge scrolling as would normally be done through gnome
2. Try to use vertical edge scrolling in a browser, etc, wherever
  
Actual results:
Vertical Edge scrolling will work for only about 1-2 seconds (and only in a tiny area in the rightmost edge of the touchpad) and then just completely stop working altogether.


Expected results:
Vertical Edge scrolling should work continously and with an adequate scroll area


Additional info:

Comment 1 Volodymir 2009-05-27 08:08:24 UTC
I also had discovered this bug on my Acer Aspire One.

But with a few differencies:
- out of the box vertical scrolling works all the time, but only in a very tiny area in the rightmost edge of the touchpad
- trying to fix it with xorg.conf or synclient makes scrolling area wider, but scrolling stops at all working after 1-2 seconds; reboot doesn't help 
- I was able to permanently fix scrolling by 10-synaptics.fdi with settings like in original Aspire One linpus' Xorg.conf (without any xorg.conf in a system):
LeftEdge 1700
RightEdge 5300
TopEdge 1700
BottomEdge 4200
FingerLow 25
FingerHigh 30
MaxTapTime 180
MaxTapMove 220
VertScrollDelta 100
MinSpeed 0.09
MaxSpeed 0.18
AccelFactor 0.0015
SHMConfig on

Comment 2 Daniel Hansen 2009-05-28 06:06:54 UTC
It would seem that the touchpad on the Acer Aspire One is reporting the wrong dimensions for the touchpad. The first four of those configuration options are all that is needed to make vertical scrolling work like a charm. I'm wondering what happened though between fedora 10 and 11. In fedora 10, vertical scrolling worked without a hitch and no modification was required. So, is this really a driver issue, or is the hardware at fault? Either way, there should be some way to fix this, as fedora 10 did it right. I know there are quite a few acer aspire one users out there, so what can we do to make this work with the default setup?

Comment 3 Jacob Church 2009-06-01 02:20:39 UTC
I have the same issue with a Gateway Solo 5300. I have horizontal scrolling, but no vertical scrolling. Here is the output of synclient -l.

# synclient -l
Parameter settings:
    LeftEdge                = 1752
    RightEdge               = 5192
    TopEdge                 = 1620
    BottomEdge              = 4236
    FingerLow               = 24
    FingerHigh              = 29
    FingerPress             = 255
    MaxTapTime              = 180
    MaxTapMove              = 221
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    FastTaps                = 0
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 280
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 100
    HorizScrollDelta        = 100
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 1
    CornerCoasting          = 0
    VertTwoFingerScroll     = 0
    HorizTwoFingerScroll    = 0
    MinSpeed                = 0.4
    MaxSpeed                = 0.7
    AccelFactor             = 0.00995223
    TrackstickSpeed         = 40
    EdgeMotionMinZ          = 29
    EdgeMotionMaxZ          = 159
    EdgeMotionMinSpeed      = 1
    EdgeMotionMaxSpeed      = 401
    EdgeMotionUseAlways     = 0
    UpDownScrolling         = 1
    LeftRightScrolling      = 1
    UpDownScrollRepeat      = 1
    LeftRightScrollRepeat   = 1
    ScrollButtonRepeat      = 100
    TouchpadOff             = 1
    GuestMouseOff           = 0
    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                = 199
    CoastingSpeed           = 0
    PressureMotionMinZ      = 29
    PressureMotionMaxZ      = 159
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 1

Comment 4 Volodymir 2009-06-01 07:07:30 UTC
Yes, it seems to be that figures, that I had on my Acer Aspire One.
So - that may be a software failure, not hardware.

Comment 5 Bug Zapper 2009-06-09 16:33:35 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 11 development cycle.
Changing version to '11'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 6 Fuzzie 2009-06-12 15:03:19 UTC
I can confirm such behaviour with on a HP TX2000. Values from synclient matches exactly with Jacob's. Cannot manually change values as it would be overridden every so often.

Comment 7 Sean Estabrooks 2009-06-12 17:30:23 UTC
Just installed F11 and am seeing similar issue here on my Aspire One.   Have followed the instructions given at:  http://fedorasolved.org/Members/khaytsus/configuring-synaptics-using-hal   and still have issues.

What is very strange is that within the first 30 seconds of booting up the vertical scroll region actually works fine.  And then just stops.

If i then use synclient to set the {Left,Right,Top,Bottom}Edge variables, scrolling starts working again for a few seconds and then stops again.

Am hoping to find a work around for this issue.

Comment 8 Volodymir 2009-06-15 07:33:32 UTC
To   Jacob,  Fuzzie, Sean Estabrooks and others.

Possible solution, that works for me (I,m using Acer Aspire One 110):

Include in /etc/hal/fdi/policy/10-synaptics.fdi this options:
LeftEdge 1700
RightEdge 5300
TopEdge 1700
BottomEdge 4200


So that file may look like this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
             <merge key="input.x11_options.TapButton1" type="string">1</merge>
             <merge key="input.x11_options.TapButton2" type="string">3</merge>
             <merge key="input.x11_options.TapButton3" type="string">2</merge>
             <merge key="input.x11_options.VertEdgeScroll" type="string">1</merge>
             <merge key="input.x11_options.LeftEdge" type="string">1700</merge>
             <merge key="input.x11_options.RightEdge" type="string">5300</merge>
             <merge key="input.x11_options.TopEdge" type="string">1700</merge>
             <merge key="input.x11_options.BottomEdge" type="string">4200</merge>
        <merge key="input.x11_driver" type="string">synaptics</merge>
    </match>
  </device>
</deviceinfo>

Maybe you'll need to read instructions in http://fedorasolved.org/Members/khaytsus/configuring-synaptics-using-hal before editing 10-synaptics.fdi.

Comment 9 Sean Estabrooks 2009-06-16 16:16:39 UTC
Seems the Ubuntu folks went through this exact issue back in January, including some of the weird behaviour seen here where scrolling works for the first 30 seconds or a minute and then dies.

https://bugs.launchpad.net/ubuntu/+source/xfree86-driver-synaptics/+bug/320632?comments=all

Ubuntu made a patch specifically to fix the Acer Aspire One problem.  It's beyond me how to see what that patch actually was since their launchpad system seems to dump everything into a single huge diff rather than individual deltas.

Anyway, here is the description for whatever that patch was:

 * debian/patches/110_remove_bound_auto_adjust.patch:
    - Small change to make sure that the driver does not
      auto-adjust to the bounds of the hardware scroll area
      as this causes problem to the touchpads of Acer Aspire
      One units (LP: #320632).

Will keep digging, but thought i'd throw this up here for whatever its worth.

Comment 10 Sean Estabrooks 2009-06-16 16:41:48 UTC
Created attachment 348131 [details]
Acer Aspire One fix

From Ubuntu...

Comment 11 Sean Estabrooks 2009-06-16 16:59:31 UTC
Created attachment 348134 [details]
rpm with Acer Aspire One scrolling fix

Replacement rpm with patch applied.  I didn't bump the version number so you'll have to install it with something like:

rpm -Uvh --replacepkgs xorg-x11-drv-synaptics-1.1.0-7.fc11.i586.rpm


One thing that I noticed is that gsynaptics preferences editor is still semi-broken even with this patch.  Once you enable edge scrolling, the sensitivity slider remains greyed out.

Anyway, this at least restores the ability to use edge scrolling until an official fix is released.

Cheers.

Comment 12 Raymond Chandler 2009-06-26 04:44:51 UTC
For the record, I was having this issue, and 
rpm -Uvh --replacepkgs --replacefiles xorg-x11-drv-synaptics-1.1.0-7.fc11.i586.rpm
allowed the rpm to install and edge scroll now works reliably for my aspire1

Comment 13 Peter Hutterer 2009-06-29 02:03:02 UTC
Please get evtest from http://people.freedesktop.org/~whot/evtest.c, compile it
up and run it (as root) against the touchpad's device file (/dev/input/eventX
where X is a number, check /proc/bus/input/devices to get the number).

Then move your finger along the right edge as if you were scrolling, this
should show the coordinates as the driver receives them.

Note that you need to VT switch away from the server (ctrl+alt+F1) before
running evtest, otherwise you won't see any events.

Upstream bug: http://bugs.freedesktop.org/show_bug.cgi?id=21001

Comment 14 Sean Estabrooks 2009-06-29 02:34:42 UTC
(In reply to comment #13)

> Then move your finger along the right edge as if you were scrolling, this
> should show the coordinates as the driver receives them.

Tried this here, the right edge returned:

        X  -->  varies a bit, from 6240 to 6257
        Y top -->  350
        Y bottom --> 5855

Should note that i like a very narrow scroll region which is less prone
to being engaged by accident; my numbers might be different than most.
Anyway, hopefully the driver will allow people to configure things how
they wish.

Cheers.

Comment 15 Peter Hutterer 2009-06-29 03:22:50 UTC
Sean, please attach the evtest output too. I also need what the hardware actually advertises in terms of coordinates. This would explain where in the driver it goes wrong.

Comment 16 Sean Estabrooks 2009-06-29 03:32:30 UTC
Created attachment 349724 [details]
Synaptic evtest capture

Comment 17 Peter Hutterer 2009-06-29 04:13:16 UTC
Interesting. The device reports a range of 1472-5472, but the events have values of 6200 and above.

If you slowly move your finger from the middle to the right of the touchpad, do you see a jump in coordinates (e.g. 5400 directly to 6000) or do you see all values in between too?

Comment 18 Sean Estabrooks 2009-06-29 04:45:35 UTC
Created attachment 349726 [details]
X values returned when swiping finger from middle to end of touchpad

Looks like the values don't jump.

Comment 19 Sean Estabrooks 2009-06-29 06:37:44 UTC
(In reply to comment #17)

> Interesting. The device reports a range of 1472-5472, but the events have
> values of 6200 and above.

The 1472-5472 values come straight from the Synaptics interfacing pdf[1] and are hard coded into the kernel driver to be returned as min/max.  Although, the pdf claims that these are just approximate values to expect based on the bezel commonly found around the touchpad.  Interestingly the pdf goes on to say you'll never get a value above 6143 for X even if you disregard the bezel.

Anyway, perhaps the xorg driver should use the default min/max values returned from the kernel but adjust itself automatically if it ever sees values that come in outside of this initial range.   That way it should work on any device with any values regardless of what the kernel reports for min/max.   Just a thought.

[1] http://www.synaptics.com/sites/default/files/ACF126.pdf?q=decaf/utilities/ACF126.pdf

Comment 20 Peter Hutterer 2009-06-30 02:30:55 UTC
May I ask you to try the patch from http://bugs.freedesktop.org/attachment.cgi?id=27245

It applies to current git tip, or would also apply to the rawhide package.
Unfortunately, the 1.1 branch (in F11) and git master have diverged quite a bit, so I'd like to get feedback on whether the patch works before I spend time backporting it.

Options to test this patch:
- get synaptics from git://anongit.freedesktop.org/git/xorg/driver/xf86-input-synaptics, apply the patch, install
- get the rawhide xorg-x11-drv-synaptics source package, apply the patch, compile and install
- koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=1443252
  note that this build is essentially the rawhide package compiled against the F-11 ABI. It has a botched version number and you MUST roll back after testing to ensure future updates will work on your machine.

In all cases you must restart X after installing the driver.

Bug is triggered by moving the finger continuously once from left to right. Any
right-edge scrolling from then on is difficult as the edge is set to XMAX_VALID
(6143).

Comment 21 Sean Estabrooks 2009-06-30 03:16:46 UTC
Created attachment 349899 [details]
test RPM with official patch from Peter

(In reply to comment #20)
> May I ask you to try the patch from
> http://bugs.freedesktop.org/attachment.cgi?id=27245

> - get the rawhide xorg-x11-drv-synaptics source package, apply the patch,
> compile and install

Thanks Peter.  Tried it out here and it works a treat.  Attached the RPM here for anyone else who wants to test it out.

Comment 22 Fedora Update System 2009-07-06 00:51:06 UTC
xorg-x11-drv-synaptics-1.1.2-2.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/xorg-x11-drv-synaptics-1.1.2-2.fc11

Comment 23 Fedora Update System 2009-07-11 17:28:26 UTC
xorg-x11-drv-synaptics-1.1.2-2.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update xorg-x11-drv-synaptics'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-7506

Comment 24 Jacob Church 2009-07-15 22:24:58 UTC
su -c 'yum --enablerepo=updates-testing update xorg-x11-drv-synaptics' only installs version 1.1.2-1.fc11 for me. Is this possibly related to the master mirror issues?

https://fedorahosted.org/fedora-infrastructure/ticket/1531

Comment 25 Peter Hutterer 2009-07-20 04:34:35 UTC
bodhi shows it in testing so I guess it's the sync issues. You can grab the build directly from
http://koji.fedoraproject.org/koji/buildinfo?buildID=113035

Comment 26 Fedora Update System 2009-08-03 01:59:04 UTC
xorg-x11-drv-synaptics-1.1.3-1.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/xorg-x11-drv-synaptics-1.1.3-1.fc11

Comment 27 Fedora Update System 2009-08-03 19:27:09 UTC
xorg-x11-drv-synaptics-1.1.3-1.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update xorg-x11-drv-synaptics'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-8257

Comment 28 Fedora Update System 2009-08-15 08:06:49 UTC
xorg-x11-drv-synaptics-1.1.3-1.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.