Subject: kern/19769: dell latidude c840 touchpad problem
To: None <gnats-bugs@gnats.netbsd.org>
From: None <cat@iki.fi>
List: netbsd-bugs
Date: 01/10/2003 17:44:26
>Number:         19769
>Category:       kern
>Synopsis:       alps glidepoint neads reset after sleep on dell latitude C840
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jan 10 07:45:02 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Patrik Andersin
>Release:        NetBSD 1.6K
>Organization:
what? me organized?
>Environment:
	
	
System: NetBSD cat 1.6K NetBSD 1.6K (CAT3) #12: Fri Jan 3 12:16:29 EET 2003 cat@cat:/usr/obj/sys/arch/i386/compile/CAT3 i386
Architecture: i386
Machine: i386
>Description:
	
On dell latitude C840 the alps glidepoint neads reseting after sleep.
Otherwise the scratchpad is about 5 times slower than initially after cold boot.
There is some on pms.c that should recheck the protocol and init mouse on PWR_RESUME,
but it doesn't get executed when you suspend and resume from text vc because then
the mouse device is not open. Even if you suspen from X vc, the do_enable() function
isn't sufficient enough to reset the scratcpad. 

>How-To-Repeat:
	
Use zzz command to suspend.
>Fix:
	
--- /usr/src/sys/dev/pckbc/pms.c.orig   Fri Jan 10 15:42:58 2003
+++ /usr/src/sys/dev/pckbc/pms.c        Fri Jan 10 15:44:53 2003
@@ -368,6 +368,9 @@
                        sc->sc_suspended = 0;
                        do_enable(sc); /* only if we were suspended */
                }
+               sc->inputstate = 0; 
+               sc->sc_enabled = 0;
+               wakeup(&sc->sc_enabled);
        case PWR_SOFTSUSPEND:
        case PWR_SOFTSTANDBY:
        case PWR_SOFTRESUME:

>Release-Note:
>Audit-Trail:
>Unformatted: