Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Aug 1999 17:41:25 -0700 (PDT)
From:      Jonathan Rozes <jrozes+934936887.118123578@vinton.com>
To:        Ludwig Pummer <ludwigp@bigfoot.com>
Cc:        freebsd-mobile@FreeBSD.ORG
Subject:   Re: touchpad taps not registering as clicks - Fixed!
Message-ID:  <Pine.SGI.3.96.990817143400.29429A-100000@molloy.vinton.com>
In-Reply-To: <4.2.0.58.19990817132350.00a74430@toy>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 17 Aug 1999, Ludwig Pummer wrote:

> I'm running 3.2-R. It's psm manpage says:
> bit 11 FORCETAP
>         Some pad devices report as if the fourth button is pressed when
>         the user `taps' the surface of the device (see CAVEATS). This flag
>         will make the psm driver assume that the device behaves this way.
>         Without the flag, the driver will assume this behavior for ALPS
>         GlidePoint models only.
> 
> Unfortunately, my Glidepoint is special. A tap is _not_ registered as a 4th 
> button click. My touchpad sends what are essentially "no-activity" packets 
> when I tap the touchpad.

The manpage is unclear/misleading. Specifying the FORCETAP option in the
psm driver does the exact same thing as forcing the model to GLIDEPOINT in
moused, which is to treat syncs as taps. Try it - I bet it works.

> moused's source code says that the ps/2 
> glidepoints send 'sync' packets when the touchpad is tapped and moused has 
> a provision to handle that. If moused recognizes the device as a 
> glidepoint, then it enables that provision.

Setting the FORCETAP option in the psm driver does the same thing, except
it also modifies the syncmask in such a way as to allow taps to work
without having to do '-m 1=4' in moused.

> Unfortunately, my mouse was being seen as a 'generic'.

I did some futzing, and I now have my kernel recognizing the pad in my
Sony Z505S as a GlidePoint. Here's a diff for 3.2-STABLE:

--snip--
--- sys/i386/isa/psm.c.orig	Tue Aug 17 15:32:39 1999
+++ sys/i386/isa/psm.c	Tue Aug 17 17:16:15 1999
@@ -2027,7 +2027,9 @@
      */
     if (!mouse_id_proc1(sc->kbdc, PSMD_RES_LOW, 2, status))
         return FALSE;
-    if ((status[0] & 0x10) || (status[1] == PSMD_RES_LOW)) 
+    if (status[1] == PSMD_RES_LOW)
+        return FALSE;
+    if ((status[0] & 0x10) && (status[0] & 0x2C))
         return FALSE;
     return TRUE;
 }
--snip--

You should be able to apply it by hand to 3.2-RELEASE (the change is in
the function enable_aglide()). With this change, the kernel correctly
recognizes the device and taps work, all without any psm flags set in the
kernel or changes made to moused.

If you try this approach and find it doesn't work, set PSM_DEBUG=1 and
KBDIO_DEBUG=1 in your kernel, recompile, reboot and mail me your dmesg.

Cheers,
jonathan

+++ Jonathan Rozes, System Administrator, Will Vinton Studios





To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SGI.3.96.990817143400.29429A-100000>