Date: Thu, 1 Oct 2009 08:07:22 GMT From: David Horn <dhorn2000@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/139272: [patch] [psm] disable synaptics mouse taps Message-ID: <200910010807.n9187MK7032354@www.freebsd.org> Resent-Message-ID: <200910010810.n918A1Sg049812@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 139272 >Category: kern >Synopsis: [patch] [psm] disable synaptics mouse taps >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu Oct 01 08:10:01 UTC 2009 >Closed-Date: >Last-Modified: >Originator: David Horn >Release: 8.0 RC r197621 >Organization: >Environment: FreeBSD xxxxxxx 8.0-RC1 FreeBSD 8.0-RC1 #21 r197621M: Thu Oct 1 02:39:15 EDT 2009 dhorn@xxxxxxxxxxxx:/usr/obj/usr/src/sys/GENERIC amd64 >Description: The attached patch adds support for disabling or enabling mouse taps on synaptics touch pads (when running in generic mouse mode) using a loader tunable. On my particular machine, disabling mouse taps is required since the location of the touchpad makes accidental touches of the mouse pad inevitable. >How-To-Repeat: >Fix: See patch Patch attached with submission follows: Index: share/man/man4/psm.4 =================================================================== --- share/man/man4/psm.4 (revision 197621) +++ share/man/man4/psm.4 (working copy) @@ -359,6 +359,33 @@ This will enable .Nm to handle packets from guest devices (sticks) and extra buttons. + +If you wish to disable Synaptics touchpad tap events (mouse taps), +set +.Va hw.psm.force_tap_events +to +.Em 2 +at boot time. This only affects Generic +.Nm +mouse support +(i.e. not when Extended Synaptics support is enabled) + +Boot-time +.Nm +device debugging is available using the +.Va debug.psm.loglevel +tunable. + +These tunables can be set in /boot/loader.conf as /etc/sysctl.conf +executes too late in the boot process. (e.g. hw.psm.force_tap_events="2") +.Sh SYSCTL VARIABLES +Once Extended Synaptics support is enabled, many additional sysctl variables +become available to customize the behavior of the touchpad. See sysctl -d +.Va hw.psm +after booting with Extended support enabled. +Debug logging can be controlled using the +.Va debug.psm.loglevel +knob. .Sh IOCTLS There are a few .Xr ioctl 2 Index: sys/dev/atkbdc/psm.c =================================================================== --- sys/dev/atkbdc/psm.c (revision 197621) +++ sys/dev/atkbdc/psm.c (working copy) @@ -346,6 +346,9 @@ static int synaptics_support = 0; TUNABLE_INT("hw.psm.synaptics_support", &synaptics_support); +static int force_tap_events = 0; +TUNABLE_INT("hw.psm.force_tap_events", &force_tap_events); + static int verbose = PSM_DEBUG; TUNABLE_INT("debug.psm.loglevel", &verbose); @@ -509,10 +512,24 @@ enable_aux_dev(KBDC kbdc) { int res; - + int cval = 0x00; + res = send_aux_command(kbdc, PSMC_ENABLE_DEV); VLOG(2, (LOG_DEBUG, "psm: ENABLE_DEV return code:%04x\n", res)); - + + /* and set synaptics touchpad tap mode only if tunable is set + - value of 1 will force tap events + - value of 2 will force no tap events + - value of 0 will not change currect state + This only works under standard mouse emulation mode, + ignored in enhanced synaptics mode */ + if (force_tap_events > 0) { + if (force_tap_events == 2) + cval |= 0x04; + mouse_ext_command(kbdc, cval); + set_mouse_sampling_rate(kbdc, 20); + VLOG(2, (LOG_DEBUG, "psm: set force_tap_events command byte value to:%02x \n", cval)); + } return (res == PSM_ACK); } @@ -2267,6 +2284,8 @@ static int tap_timeout = PSM_TAP_TIMEOUT; SYSCTL_INT(_hw_psm, OID_AUTO, tap_timeout, CTLFLAG_RW, &tap_timeout, 0, "Tap timeout for touchpads"); +SYSCTL_INT(_hw_psm, OID_AUTO, force_tap_events, CTLFLAG_RW, &force_tap_events, 0, + "Force tap events 0=no change 1=force events on 2=force events off"); static void psmintr(void *arg) >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910010807.n9187MK7032354>