diff options
Diffstat (limited to 'sys/isa/atkbd_isa.c')
-rw-r--r-- | sys/isa/atkbd_isa.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/isa/atkbd_isa.c b/sys/isa/atkbd_isa.c index 65f0b23..1941612 100644 --- a/sys/isa/atkbd_isa.c +++ b/sys/isa/atkbd_isa.c @@ -53,11 +53,13 @@ devclass_t atkbd_devclass; static int atkbdprobe(device_t dev); static int atkbdattach(device_t dev); +static int atkbdresume(device_t dev); static void atkbd_isa_intr(void *arg); static device_method_t atkbd_methods[] = { DEVMETHOD(device_probe, atkbdprobe), DEVMETHOD(device_attach, atkbdattach), + DEVMETHOD(device_resume, atkbdresume), { 0, 0 } }; @@ -116,6 +118,18 @@ atkbdattach(device_t dev) return 0; } +static int +atkbdresume(device_t dev) +{ + keyboard_t *kbd; + + kbd = kbd_get_keyboard(kbd_find_keyboard(ATKBD_DRIVER_NAME, + device_get_unit(dev))); + if (kbd) + (*kbdsw[kbd->kb_index]->clear_state)(kbd); + return 0; +} + static void atkbd_isa_intr(void *arg) { |