Lines Matching defs:k

112 	struct kbd_sun_softc *k = (struct kbd_sun_softc *)kbd;
122 if (k->k_isopen)
126 if (k->k_deviopen)
127 (*k->k_deviopen)(k->k_kbd.k_dev, FREAD|FWRITE);
132 kbd_sun_output(k, KBD_CMD_RESET);
133 kbd_sun_start_tx(k);
134 kbd_sun_drain_tx(k);
160 kbd_sun_output(k, KBD_CMD_GETLAYOUT);
161 kbd_sun_start_tx(k);
162 kbd_sun_drain_tx(k);
186 k->k_isopen = 1;
207 struct kbd_sun_softc *k = (struct kbd_sun_softc *)kbd;
236 error = kbd_sun_drain_tx(k);
239 kbd_sun_output(k, cmd);
240 kbd_sun_start_tx(k);
256 struct kbd_sun_softc *k = (struct kbd_sun_softc *)kbd;
261 error = kbd_sun_drain_tx(k);
282 struct kbd_sun_softc *k = (struct kbd_sun_softc *)kbd;
295 kbd_sun_output(k, KBD_CMD_SETLED);
296 kbd_sun_output(k, new_leds);
297 kbd_sun_start_tx(k);
311 kbd_sun_output(struct kbd_sun_softc *k, int c)
315 put = k->k_tbput;
316 k->k_tbuf[put] = (uint8_t)c;
320 if (put == k->k_tbget) {
322 device_xname(k->k_kbd.k_dev));
325 k->k_tbput = put;
335 kbd_sun_drain_tx(struct kbd_sun_softc *k)
339 while ((k->k_txflags & K_TXBUSY) && (!error) && (bail<1000)) {
340 k->k_txflags |= K_TXWANT;
341 error = tsleep(&k->k_txflags, PZERO | PCATCH, "kbdout", 1);
354 kbd_sun_start_tx(struct kbd_sun_softc *k)
359 if (k->k_txflags & K_TXBUSY)
363 get = k->k_tbget;
364 if (get == k->k_tbput) {
366 if (k->k_txflags & K_TXWANT) {
367 k->k_txflags &= ~K_TXWANT;
368 wakeup(&k->k_txflags);
374 c = k->k_tbuf[get];
376 k->k_tbget = get;
377 k->k_txflags |= K_TXBUSY;
380 (*k->k_write_data)(k, c);
390 kbd_sun_input(struct kbd_sun_softc *k, int code)
392 struct kbd_softc *kbd = (struct kbd_softc *)k;
397 if (k->k_expect) {
398 if (k->k_expect & KBD_EXPECT_IDCODE) {
401 kbd_sun_was_reset(k);
403 if (k->k_expect & KBD_EXPECT_LAYOUT) {
406 kbd_sun_new_layout(k);
408 k->k_expect = 0;
416 k->k_expect |= KBD_EXPECT_IDCODE;
422 k->k_expect |= KBD_EXPECT_LAYOUT;
446 kbd_sun_was_reset(struct kbd_sun_softc *k)
448 struct kbd_state *ks = &k->k_kbd.k_state;
467 kbd_sun_output(k, KBD_CMD_NOCLICK);
468 kbd_sun_start_tx(k);
476 kbd_sun_output(k, KBD_CMD_CLICK);
477 kbd_sun_start_tx(k);
482 device_xname(k->k_kbd.k_dev), (unsigned int)ks->kbd_id);
494 kbd_sun_new_layout(struct kbd_sun_softc *k)
496 struct kbd_state *ks = &k->k_kbd.k_state;