I recompiled the kernel with these changes. This solved the problem.
sys/dev/ic/pckbc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sys/dev/ic/pckbc.c b/sys/dev/ic/pckbc.c
--- a/sys/dev/ic/pckbc.c
+++ b/sys/dev/ic/pckbc.c
@@ -376,6 +376,9 @@ pckbc_attach(struct pckbc_softc *sc)
t->t_haveaux = 0;
}
+ if (!pmf_device_register(sc->sc_dv, NULL, pckbc_resume))
+ aprint_error("pckbc+: register resume hendler error\n");
+
nomouse:
/* enable needed interrupts */
t->t_cmdbyte |= cmdbits;
We have code in pckbc_acpi and pckbc_isa that does this already, I'd like to find out why that didn't work. Can you provide a full dmesg and if possible, trace the relevant attach glue (pckbc_isa.c or pckbc_acpi.c) to see why the pmf_device_register calls there weren't reached?