diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2015-03-12 20:28:27 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2015-03-12 20:28:27 +0000 |
commit | 2553c40ead8fa1bd9778a2c9c73906b216800c68 (patch) | |
tree | 2ab4a35a79e2531fd792a440a0c0307ff05e563a /sys/dev/pckbc | |
parent | 96e640797bd4cc0ddd04f8191e8b395b4d3e6f36 (diff) |
On first cnpoll, reset the keyboard and pms hard. This is required
to make "boot -c" support work on a variety of newer machines.
Do not anticipate this harming older machines, but we'll have to wait
and see with this change in the tree.
with jcs
Diffstat (limited to 'sys/dev/pckbc')
-rw-r--r-- | sys/dev/pckbc/pckbd.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/pckbc/pckbd.c b/sys/dev/pckbc/pckbd.c index 789da82393c..66f036e7937 100644 --- a/sys/dev/pckbc/pckbd.c +++ b/sys/dev/pckbc/pckbd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pckbd.c,v 1.38 2014/07/24 22:38:19 mpi Exp $ */ +/* $OpenBSD: pckbd.c,v 1.39 2015/03/12 20:28:26 deraadt Exp $ */ /* $NetBSD: pckbd.c,v 1.24 2000/06/05 22:20:57 sommerfeld Exp $ */ /*- @@ -79,6 +79,7 @@ #include <dev/ic/pckbcvar.h> #include <dev/pckbc/pckbdreg.h> #include <dev/pckbc/pckbdvar.h> +#include <dev/pckbc/pmsreg.h> #include <dev/wscons/wsconsio.h> #include <dev/wscons/wskbdvar.h> @@ -1033,6 +1034,10 @@ pckbd_cnpollc(void *v, int on) /* Just to be sure. */ cmd[0] = KBC_ENABLE; pckbc_poll_cmd(t->t_kbctag, PCKBC_KBD_SLOT, cmd, 1, 0, NULL, 0); + cmd[0] = KBC_RESET; + pckbc_poll_cmd(t->t_kbctag, PCKBC_KBD_SLOT, cmd, 1, 0, NULL, 0); + cmd[0] = PMS_RESET; + pckbc_poll_cmd(t->t_kbctag, PCKBC_AUX_SLOT, cmd, 1, 0, NULL, 0); } } |