Date: Tue, 21 Feb 2006 12:22:49 +0100 From: =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= <dumbbell@freebsd.org> To: freebsd-mobile@freebsd.org Subject: [PATCH] Fixes and improvements for Synaptics Touchpads Message-ID: <43FAF809.60106@freebsd.org>
next in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, I sent a similar mail a month ago on freebsd-current@ but didn't get any feedback, so I try here. In this new mail, I begin with the content of the previous mail about the initialization of the touchpad. After that, I'll talk about coordinates filtering and virtual scrolling. 1. Initialization correction The Synaptics TouchPad on my laptop (Asus V6V, Synaptics TouchPad V5.9) doesn't work at all with FreeBSD -CURRENT (neither with 6-STABLE). In psm.c:psmprobe(), the touchpad reverts back to Relative mode (default mode) just after auxiliary kbdc ports are disabled. A workaround is to send a Read Mode Byte command: the touchpad is again in Absolute mode. Because I don't know if other laptops/touchpad versions work with current psm(4), I'd be happy with success/failure reports with this patch from people who have (working or not) touchpads. To enable Synaptics support, you must add this line to your /boot/loader.conf: hw.psm.synaptics_support="1" If psm(4) gurus think this isn't the right way to fix it, please tell me. The patch is available at: http://people.freebsd.org/~dumbbell/synaptics/psm-synaptics-abs_mode-c.patch 2. Coordinates filtering This next patch processes raw coordinates to improve the smoothness of the movements. The algorithm is almost the same as before but corrects the behaviour when the finger doesn't move or move slowly. Also, the pointer won't "jump" when the finger taps or leaves the touchpad. Like the current driver, this patch still simulates right and middle click with two and three fingers tap respectively. It adds the support for tap-hold (to move a window with a single finger for instance). To tweak the behaviour, one can use the same sysctl's as before. The patch is available at: http://people.freebsd.org/~dumbbell/synaptics/psm-synaptics-filtering-c.patch (it includes the previous one) 3. Virtual scrolling To simulate wheels, one can define a margin around the touchpad for virtual scrolling. When an action starts inside this area, the driver won't report X/Y movements but changes in the Z axis. It supports vertical and horizontal scrolling and both can be used at the same time when the finger goes to diagonal (not sure with this expression). The margin may be tuned with the hw.psm.synaptics.directional_scrolls sysctl (expressed in touchpad units; the touchpad widhth and height are both 6143). The patch is available at: http://people.freebsd.org/~dumbbell/synaptics/psm-synaptics-virtualscrolling-c.patch (it includes the two above) As with the first patch, I'd be happy with success/failure reports. Best regards, - -- Jean-Sébastien Pédron http://www.dumbbell.fr/ PGP Key: http://www.dumbbell.fr/pgp/pubkey.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFD+vgJa+xGJsFYOlMRApJVAJ9OdbgXIiBNNLL6lYqIy/Z5orFOcwCcCy9Z JJNSQBrHowIDeZfDVD3ODD4= =Tcze -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43FAF809.60106>