on 17/07/07 16:44 Soeren Sonnenburg said the following:
On Tue, 2007-07-17 at 09:16 +1000, Daniel M. Newman wrote:
  
on 16/07/07 15:33 Soeren Sonnenburg said the following: 
    
On Mon, 2007-07-16 at 10:32 +1000, Daniel M. Newman wrote:
  
      
Using kernel 2.6.22 and the mactel-linux revision 133 patch set from svn
on a Macbook Pro 15in, there seem to be a couple of peculiarities in the
trackpad behaviour.
    
        
please try the attached kernel patch and make sure that you are using a
new X synaptics driver (e.g. 0.14.7~git20070517 )...

  
      
I tried building the 0.14.7~git20070517 driver from source.  It built
fine, but it didn't play well with my Ubuntu distribution version
2:1.3.0.0.dfsg-6ubuntu2, failing with:
 
(II) Loading /usr/lib/xorg/modules/input//synaptics_drv.so
dlopen: /usr/lib/xorg/modules/input//synaptics_drv.so: undefined symbol: __stack_chk_fail_local
(EE) Failed to load /usr/lib/xorg/modules/input//synaptics_drv.so
so I reverted to the 0.14.6-0ubuntu7 driver, which was working ok. 
    

too bad... this newer driver really resolved a couple of issues for me.

  
1. During boot-up, the appletouch module always loads normally. 
However, as X (using the fglrx driver 8.38.6) starts up I sometimes
(about one time in five) get an error that the core pointer is
unavailable.  When this happens, the following shows up in syslog:

kernel: BUG: scheduling while atomic: Xorg/0x00000001/2826
kernel:  [schedule+1267/2448] schedule+0x4f3/0x990
kernel:  [_spin_unlock+13/48] _spin_unlock+0xd/0x30
kernel:  [__wake_up_common+57/112] __wake_up_common+0x39/0x70
kernel:  [__wake_up+56/80] __wake_up+0x38/0x50
kernel:  [<f89d8f81>] irqmgr_wrap_shutdown+0xe1/0x150 [fglrx]
kernel:  [<f89c9f45>] firegl_takedown+0x625/0xc50 [fglrx]
kernel:  [proc_delete_inode+0/96] proc_delete_inode+0x0/0x60
kernel:  [<f89c900f>] firegl_release+0x12f/0x190 [fglrx]
kernel:  [<f89bd44f>] ip_firegl_release+0xf/0x20 [fglrx]
kernel:  [__fput+151/368] __fput+0x97/0x170
kernel:  [filp_close+73/128] filp_close+0x49/0x80
kernel:  [put_files_struct+156/192] put_files_struct+0x9c/0xc0
kernel:  [do_exit+314/2016] do_exit+0x13a/0x7e0
kernel:  [<f8a14be9>] IRQMGR_WorkerThreadRoutine+0x29/0x30 [fglrx]
kernel:  [<f89bab90>] kasThreadRoutineHelper+0x0/0x20 [fglrx]
kernel:  [<f89bab90>] kasThreadRoutineHelper+0x0/0x20 [fglrx]
kernel:  [<f89d8d2e>] IRQMGR_CallbackWrapper+0xe/0x20 [fglrx]
kernel:  [<f89bab90>] kasThreadRoutineHelper+0x0/0x20 [fglrx]
kernel:  [kernel_thread_helper+13/20] kernel_thread_helper+0xd/0x14

Removing and re-inserting appletouch generally fixes this, although
sometimes I have to do the remove and reinsert twice.
    
        
this sounds more like a bug in fglrx... but I've yet to see this to
happen...

 
      
No, I'm fairly sure it is to do with the appletouch, since it can be
fixed by removing and re-inserting it.  I think the fglrx component of
the failure happens after the appletouch fails to provide a pointer
device.  Also, the bug seems to have some connection to the usb
system, since it happens much more often if the machine is booted up
with large numbers of usb devices connected, particularly if a usb hub
is used.  Maybe there is some sort of race in the allocation of usb
devices ?
    

Could be, but as I've never seen it and I am also regularly connecting
my machine to a usb hub. So it would be great if you could isolate it a
bit more...

One last idea: is appletouch really loaded before you start X ? It could
be that X just does not find the touchpad device starts/stops X
triggering a bug in fglrx...

So you could try to explicitly load the appletouch module on startup and
also it might help to use this as the appletouch device line...

        Option          "Device" "/dev/input/by-id/usb-Apple_Computer_Apple_Internal_Keyboard_._Trackpad-mouse"

Any appletouch errors in dmesg ?

  
I'm already explicitly loading appletouch, as the first item in /etc/modules.  I have regularly checked dmesg and never seen any appletouch problems.  I'm using udev to set up a link to the device, and have tried both _Trackpad-mouse and _Trackpad-event-mouse with similar results (the problem happens only occasionally in each case).  I'll keep experimenting and see what else I can find out ...

  
2. I have my screen set to blank after a period of non-usage.  When
waking up after this happens, the trackpad cursor no longer follows
finger movements reliably.  Removing and re-inserting the appletouch
module fixes this, but does not re-enable response to two- and three-
finger taps.  Restarting gdm fixes both problems.
    
        
that should be fixed by the patch.

  
      
Your patch fixed the problem, although sometimes it seems to slightly
affect the sensitivity of the multi-finger taps after wakeup.  It also
prevents the svn patch
"appletouch-shut-up-when-it-has-nothing-to-say.patch" from applying
cleanly.
    

well the patch I sent you already includes the
appletouch-shut-up-when-it-has-nothing-to-say.patch + small fixes. and
it definitely does not change anything regarding multi-finger taps... so
that is a heisen-bug :-)

  
3.  Trackpad button presses sometimes do not generate an immediate
response.  However, if the trackpad button is pressed and no response
happens, a small movement of the cursor will cause the response to
occur.  It seems that the button press input is being queued, but the
queue is not checked until trackpad motion is detected.  I thought this
might be due to my xorg.conf settings, but these seem to be in
accordance with the various recommendations (see below).
    
        
strange... 

Please report back whether it still happens with the attached patch and
a newer synaptics xorg driver...
  
      
This doesn't seem to happen now - maybe because the
"appletouch-shut-up-when-it-has-nothing-to-say.patch" didn't install ?
    

well the shut-up patch could have triggered this, but as I said my patch
included that one + a fix when the touchpad 'wakes up' so it might have
been fixed by that patch too...

Soeren

  
OK, with the new patch installed I've done some experimenting with synclient and now have what seems (for me, anyway) is a good response to multi-fingered touches.  The revised xorg.conf element is:

Section "InputDevice"
        Identifier  "Synaptics Touchpad"
        Driver      "synaptics"
        Option      "Device" "/dev/input/appletouchpad"
        Option      "Protocol" "event"
        Option      "CorePointer"
        Option      "SHMConfig" "on"
        Option      "LeftEdge" "0"
        Option      "RightEdge" "850"
        Option      "TopEdge" "0"
        Option      "BottomEdge" "310"
        Option      "FingerLow" "25"
        Option      "FingerHigh" "30"
        Option      "MaxTapTime" "350"
        Option      "MaxTapMove" "0"
        Option      "MaxDoubleTapTime" "180"
        Option      "HorizEdgeScroll" "true"
        Option      "VertEdgeScroll" "true"
        Option      "VertTwoFingerScroll" "false"
        Option      "HorizTwoFingerScroll" "false"
        Option      "VertScrollDelta" "7"
        Option      "HorizScrollDelta" "7"
        Option      "MinSpeed" "0.6"
        Option      "MaxSpeed" "1.0"
        Option      "AccelFactor" "0.02"
        Option      "TapButton1" "0"
        Option      "TapButton2" "2"
        Option      "TapButton3" "3"
EndSection


So, I'd say your patch has definitely fixed most of my touchpad problems and the remaining one only happens occasionally and irregularly.  Thanks for all the help.

Dan


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Mactel-linux-devel mailing list
Mactel-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mactel-linux-devel

Reply via email to