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