diff options
author | yokota <yokota@FreeBSD.org> | 1999-03-10 10:36:53 +0000 |
---|---|---|
committer | yokota <yokota@FreeBSD.org> | 1999-03-10 10:36:53 +0000 |
commit | 1c67fa8f3d842ef1daea6a8442e829e386fafdd5 (patch) | |
tree | 41f00cd620389bf07e2912551d080e830f0dc85a /sys/i386/isa | |
parent | 6eb9a9adf91724bc8f8bb0516ce6bc9f52b58d95 (diff) | |
download | FreeBSD-src-1c67fa8f3d842ef1daea6a8442e829e386fafdd5.zip FreeBSD-src-1c67fa8f3d842ef1daea6a8442e829e386fafdd5.tar.gz |
Keyboard driver update in preparation for the USB keyboard driver.
- Refined internal interface in keyboard drivers so that:
1. the side effect of device probe is kept minimal,
2. polling mode function is added,
3. and new ioctl and configuration options are added (see below).
- Added new ioctl: KDSETREPEAT
Set keyboard typematic rate. There has existed an ioctl command,
KDSETRAD, for the same purpose. However, KDSETRAD is dependent on
the AT keyboard. KDSETREPEAT provides more generic interface.
KDSETRAD will still be supported in the atkbd driver.
- Added new configuration options:
ATKBD_DFLT_KEYMAP
Specify a keymap to be used as the default, built-in keymap.
(There has been undocumented options, DKKEYMAP, UKKEYMAP, GRKEYMAP,
SWKEYMAP, RUKEYMAP, ESKEYMAP, and ISKEYMAP to set the default keymap.
These options are now gone for good. The new option is more general.)
KBD_DISABLE_KEYMAP_LOADING
Don't allow the user to change the keymap.
Diffstat (limited to 'sys/i386/isa')
-rw-r--r-- | sys/i386/isa/atkbd_isa.c | 27 | ||||
-rw-r--r-- | sys/i386/isa/pcvt/pcvt_kbd.c | 2 |
2 files changed, 8 insertions, 21 deletions
diff --git a/sys/i386/isa/atkbd_isa.c b/sys/i386/isa/atkbd_isa.c index 9cd0629..e4c0603 100644 --- a/sys/i386/isa/atkbd_isa.c +++ b/sys/i386/isa/atkbd_isa.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: atkbd_isa.c,v 1.1 1999/01/09 02:44:40 yokota Exp $ + * $Id: atkbd_isa.c,v 1.2 1999/01/19 11:30:55 yokota Exp $ */ #include "atkbd.h" @@ -57,23 +57,8 @@ struct isa_driver atkbddriver = { static int atkbdprobe(struct isa_device *dev) { - atkbd_softc_t *sc; - int error; - - sc = atkbd_get_softc(dev->id_unit); - if (sc == NULL) - return 0; - - /* try to find a keyboard */ - error = atkbd_probe_unit(dev->id_unit, sc, dev->id_iobase, - dev->id_irq, dev->id_flags); - if (error) - return 0; - - /* declare our interrupt handler */ - dev->id_ointr = atkbd_isa_intr; - - return -1; + return ((atkbd_probe_unit(dev->id_unit, dev->id_iobase, + dev->id_irq, dev->id_flags)) ? 0 : -1); } static int @@ -85,7 +70,9 @@ atkbdattach(struct isa_device *dev) if (sc == NULL) return 0; - return ((atkbd_attach_unit(dev->id_unit, sc)) ? 0 : 1); + dev->id_ointr = atkbd_isa_intr; + return ((atkbd_attach_unit(dev->id_unit, sc, dev->id_iobase, + dev->id_irq, dev->id_flags)) ? 0 : 1); } static void @@ -94,7 +81,7 @@ atkbd_isa_intr(int unit) keyboard_t *kbd; kbd = atkbd_get_softc(unit)->kbd; - (*kbdsw[kbd->kb_index]->intr)(kbd); + (*kbdsw[kbd->kb_index]->intr)(kbd, NULL); } #endif /* NATKBD > 0 */ diff --git a/sys/i386/isa/pcvt/pcvt_kbd.c b/sys/i386/isa/pcvt/pcvt_kbd.c index 7e60930..8a5a2b8 100644 --- a/sys/i386/isa/pcvt/pcvt_kbd.c +++ b/sys/i386/isa/pcvt/pcvt_kbd.c @@ -635,7 +635,7 @@ r_entry: if (kbd == NULL) return; /* shouldn't happen */ - (*kbdsw[kbd->kb_index]->init)(kbd); + kbd_configure(0); ledstate = LEDSTATE_UPDATE_PENDING; |