Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: dev/dnkbd.c
- ===================================================================
- RCS file: /cvsroot/src/sys/arch/hp300/dev/dnkbd.c,v
- retrieving revision 1.7
- diff -u -p -d -r1.7 dnkbd.c
- --- dev/dnkbd.c 24 Apr 2014 12:10:27 -0000 1.7
- +++ dev/dnkbd.c 23 Mar 2017 14:55:54 -0000
- @@ -263,6 +263,7 @@ static int dnkbd_probe(struct dnkbd_soft
- static void dnkbd_rawrepeat(void *);
- #endif
- static int dnkbd_send(struct dnkbd_softc *, const uint8_t *, size_t);
- +static void dnkbd_break(struct dnkbd_softc *, int);
- int
- dnkbd_match(device_t parent, cfdata_t cf, void *aux)
- @@ -307,6 +308,11 @@ dnkbd_attach(device_t parent, device_t s
- /* reset the port */
- dnkbd_init(sc, 1200, LCR_8BITS | LCR_PEVEN | LCR_PENAB);
- + /* send break to reset keyboard state */
- + dnkbd_break(sc, 1);
- + delay(10 * 1000);
- + dnkbd_break(sc, 0);
- +
- frodo_intr_establish(parent, dnkbd_intr, sc, fa->fa_line, IPL_VM);
- /* probe for keyboard */
- @@ -869,6 +875,25 @@ dnkbd_send(struct dnkbd_softc *sc, const
- return 0;
- }
- +void
- +dnkbd_break(struct dnkbd_softc *sc, int onoff)
- +{
- + bus_space_tag_t bst;
- + bus_space_handle_t bsh;
- + uint8_t reg;
- +
- + bst = sc->sc_bst;
- + bsh = sc->sc_bsh;
- +
- + reg = bus_space_read_1(bst, bsh, com_lctl);
- + if (onoff)
- + reg |= LCR_SBREAK;
- + else
- + reg &= ~LCR_SBREAK;
- +
- + bus_space_write_1(bst, bsh, com_lctl, reg);
- +}
- +
- int
- dnkbd_intr(void *v)
- {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement