aboutsummaryrefslogtreecommitdiff
path: root/sys/isa
diff options
context:
space:
mode:
authorPhilip Paeps <philip@FreeBSD.org>2004-09-29 23:49:57 +0000
committerPhilip Paeps <philip@FreeBSD.org>2004-09-29 23:49:57 +0000
commit34ed91b45be43438c9799dda81ca4f4ed11426fa (patch)
tree07b4aac8a3fbaedc5f28ddf89114d3fb40107c3d /sys/isa
parent36716fe25ba9622fbcd16415eca59e7e8e7a3761 (diff)
downloadsrc-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.c12
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);