diff options
Diffstat (limited to 'sys/arch/sparc64/dev/comkbd_ebus.c')
-rw-r--r-- | sys/arch/sparc64/dev/comkbd_ebus.c | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/sys/arch/sparc64/dev/comkbd_ebus.c b/sys/arch/sparc64/dev/comkbd_ebus.c index ec8b943a337..c201ef04436 100644 --- a/sys/arch/sparc64/dev/comkbd_ebus.c +++ b/sys/arch/sparc64/dev/comkbd_ebus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: comkbd_ebus.c,v 1.7 2002/05/29 20:43:43 maja Exp $ */ +/* $OpenBSD: comkbd_ebus.c,v 1.8 2002/11/29 01:00:49 miod Exp $ */ /* * Copyright (c) 2002 Jason L. Wright (jason@thought.net) @@ -232,7 +232,28 @@ comkbd_attach(parent, self, aux) 0, &sc->sc_ioh) != 0) { printf(": can't map register space\n"); return; + } else + printf("\n"); + + if (ISTYPE5(sc->sc_layout)) { + a.keymap = &sunkbd5_keymapdata; +#ifndef SUNKBD5_LAYOUT + if (sc->sc_layout < MAXSUNLAYOUT && + sunkbd_layouts[sc->sc_layout] != -1) + sunkbd5_keymapdata.layout = + sunkbd_layouts[sc->sc_layout]; +#endif + } else { + a.keymap = &sunkbd_keymapdata; +#ifndef SUNKBD_LAYOUT + if (sc->sc_layout < MAXSUNLAYOUT && + sunkbd_layouts[sc->sc_layout] != -1) + sunkbd_keymapdata.layout = + sunkbd_layouts[sc->sc_layout]; +#endif } + a.accessops = &comkbd_accessops; + a.accesscookie = sc; if (console) { comkbd_init(sc); @@ -248,18 +269,8 @@ comkbd_attach(parent, self, aux) COM_WRITE(sc, com_ier, sc->sc_ier); COM_READ(sc, com_iir); COM_WRITE(sc, com_mcr, MCR_IENABLE | MCR_DTR | MCR_RTS); - } else - printf("\n"); - - - a.console = console; - if (ISTYPE5(sc->sc_layout)) { - a.keymap = &sunkbd5_keymapdata; - } else { - a.keymap = &sunkbd_keymapdata; } - a.accessops = &comkbd_accessops; - a.accesscookie = sc; + sc->sc_wskbddev = config_found(self, &a, wskbddevprint); } |