NetBSD Problem Report #35698

From www@NetBSD.org  Mon Feb 19 04:51:54 2007
Return-Path: <www@NetBSD.org>
Received: by narn.NetBSD.org (Postfix, from userid 31301)
	id 4126263B8F2; Mon, 19 Feb 2007 04:51:54 +0000 (UTC)
Message-Id: <20070219045154.4126263B8F2@narn.NetBSD.org>
Date: Mon, 19 Feb 2007 04:51:54 +0000 (UTC)
From: matt.a.martin@gmail.com
Reply-To: matt.a.martin@gmail.com
To: gnats-bugs@NetBSD.org
Subject: Touchpad problems on Acer Aspire 1691
X-Send-Pr-Version: www-1.0

>Number:         35698
>Category:       port-i386
>Synopsis:       Touchpad problems on Acer Aspire 1691
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 19 04:55:00 +0000 2007
>Originator:     Matt Martin
>Release:        4.0_BETA2
>Organization:
n/a
>Environment:
NetBSD Focus.local.non 4.0_BETA2 NetBSD 4.0_BETA2 (FOCUS) #2: Sun Feb 18 22:09:02 CST 2007  root@Focus.local.non:/usr/src/sys/arch/i386/compile/FOCUS i386
>Description:
Touchpad is almost completely unresponsive. It will repond at random *sometimes* if I drag my fingers around and push the buttons wildly. Most of the time it simply does nothing.

I tried disabling acpi and apm in the kernel thinking it to be a possible cause, but it did not help. The kernel I'm currently running is identical to GENERIC_LAPTOP, but loading my own DSDT. This problem occures with GENERIC_LAPTOP as well.



>How-To-Repeat:
Attempt to use the touchpad with wsmoused or X on an Acer Aspire 1691
>Fix:
Eventually I came across http://mail-index.netbsd.org/current-users/2005/11/12/0030.html

So I emailed him asking about it, as it was the same laptop. Rui Paulo replied with the following, after doing it the trackpad works fine so far:


Yes, the problem was not interrupts.
IIRC the driver is not understanding correctly the input of the
trackpad.
In pms_synaptics_input():


-----------
       switch (psc->inputstate) {
       case 0:
               if ((data & 0xc8) != 0x80) {
#ifdef SYNAPTICSDEBUG
                       printf("%s: pms_input: 0x%02x out of sync\n",
                           psc->sc_dev.dv_xname, data);
#endif
                       return; /* not in sync yet, discard input */
               }
               /*FALLTHROUGH*/

       case 3:
               if ((data & 8) == 8) {
#ifdef SYNAPTICSDEBUG
                       printf("%s: pms_input: dropped in relative mode, "
                           "reset\n", psc->sc_dev.dv_xname);
#endif
                       psc->inputstate = 0;
                       psc->sc_enabled = 0;
                       wakeup(&psc->sc_enabled);
                       return;
               }
       }
-----------

Try disabling/deleting this switch statement. It worked for me, so no
guarantees ... ;-)

Ah, the file is src/sys/dev/pckbport/synaptics.c.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.