There is a problem with pms/pmsi mice vs suspend/resume. On my
eeepc 1000HE for instance.

The diff below is the latest and possibly last attempt before 4.8
is locked to get this working without adversely affecting existing
performance.

If this doesn't get tested enough, all recent changes to get
pms/pmsi mice and mouse pads to survive suspend/resume will have
to be rolled back!

Test and report, all ye pms/pmsi mice owners!

AND NOT JUST LAPTOP OWNERS!! First priority is to not harm
existing devices. Even if you don't suspend/resume we need
tests! If in doubt test!!!!

.... Ken

Index: pms_intelli.c
===================================================================
RCS file: /cvs/src/sys/dev/pckbc/pms_intelli.c,v
retrieving revision 1.4
diff -u -p -r1.4 pms_intelli.c
--- pms_intelli.c       25 Jul 2010 22:46:17 -0000      1.4
+++ pms_intelli.c       28 Jul 2010 23:54:47 -0000
@@ -241,7 +241,7 @@ pmsiactivate(struct device *self, int ac
 int
 pmsi_change_state(struct pmsi_softc *sc, int newstate)
 {
-       u_char cmd[1], resp[2];
+       u_char cmd[1];
        int res;
 
        switch (newstate) {
@@ -254,22 +254,10 @@ pmsi_change_state(struct pmsi_softc *sc,
                pckbc_slot_enable(sc->sc_kbctag, sc->sc_kbcslot, 1);
 
                pckbc_flush(sc->sc_kbctag, sc->sc_kbcslot);
-
-               /* reset the device */
-               cmd[0] = PMS_RESET;
-               res = pckbc_poll_cmd(sc->sc_kbctag, sc->sc_kbcslot,
-                   cmd, 1, 2, resp, 1);
-#ifdef DEBUG
-               if (res || resp[0] != PMS_RSTDONE || resp[1] != 0) {
-                       printf("pmsi_change_state: reset error\n");
-                       return;
-               }
-#endif
                res = pmsi_setintellimode(sc->sc_kbctag, sc->sc_kbcslot, 0);
 #ifdef DEBUG
                if (res) {
                        printf("pmsi_change_state: error setting intelli 
mode\n");
-                       return;
                }
 #endif

Reply via email to