diff options
author | Philip Paeps <philip@FreeBSD.org> | 2004-09-29 23:49:57 +0000 |
---|---|---|
committer | Philip Paeps <philip@FreeBSD.org> | 2004-09-29 23:49:57 +0000 |
commit | 34ed91b45be43438c9799dda81ca4f4ed11426fa (patch) | |
tree | 07b4aac8a3fbaedc5f28ddf89114d3fb40107c3d /sys/isa | |
parent | 36716fe25ba9622fbcd16415eca59e7e8e7a3761 (diff) | |
download | src-34ed91b45be43438c9799dda81ca4f4ed11426fa.tar.gz src-34ed91b45be43438c9799dda81ca4f4ed11426fa.zip |
Introduce a tunable to disable support for Synaptics touchpads. A number of
people have reported problems (stickyness, aiming difficulty) which is proving
difficult to fix, so this will default to disable until sometime after 5.3R.
To enable Synaptics support, set the 'hw.psm.synaptics_support=1' tunable.
MT5 candidate.
Approved by: njl
Notes
Notes:
svn path=/head/; revision=135945
Diffstat (limited to 'sys/isa')
-rw-r--r-- | sys/isa/psm.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/isa/psm.c b/sys/isa/psm.c index 5c6eb8847e13..c38a11406b0a 100644 --- a/sys/isa/psm.c +++ b/sys/isa/psm.c @@ -233,6 +233,10 @@ static devclass_t psm_devclass; /* other flags (flags) */ #define PSM_FLAGS_FINGERDOWN 0x0001 /* VersaPad finger down */ +/* Tunables */ +static int synaptics_support = 0; +TUNABLE_INT("hw.psm.synaptics_support", &synaptics_support); + /* for backward compatibility */ #define OLD_MOUSE_GETHWINFO _IOR('M', 1, old_mousehw_t) #define OLD_MOUSE_GETMODE _IOR('M', 2, old_mousemode_t) @@ -1716,7 +1720,7 @@ psmioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td case MOUSE_SYN_GETHWINFO: s = spltty(); - if (sc->hw.model == MOUSE_MODEL_SYNAPTICS) + if (synaptics_support && sc->hw.model == MOUSE_MODEL_SYNAPTICS) *(synapticshw_t *)addr = sc->synhw; else error = EINVAL; @@ -2518,6 +2522,9 @@ psmsoftintr(void *arg) * Byte 2,5,6 == Byte 1,2,3 of "Guest" */ + if (!synaptics_support) + break; + /* Sanity check for out of sync packets. */ if ((pb->ipacket[0] & 0xc8) != 0x80 || (pb->ipacket[3] & 0xc8) != 0xc0) @@ -3108,6 +3115,9 @@ enable_synaptics(struct psm_softc *sc) int status[3]; KBDC kbdc; + if (!synaptics_support) + return (FALSE); + kbdc = sc->kbdc; disable_aux_dev(kbdc); |