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>