• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/atkbdc/

Lines Matching refs:kbdc

60 	KBDC		kbdc;		/* keyboard controller */
78 static int atkbd_reset(KBDC kbdc, int flags, int c);
81 #define ALLOW_DISABLE_KBD(kbdc) !HAS_QUIRK(kbdc, KBDC_QUIRK_KEEP_ACTIVATED)
257 static int setup_kbd_port(KBDC kbdc, int port, int intr);
258 static int get_kbd_echo(KBDC kbdc);
259 static int probe_keyboard(KBDC kbdc, int flags);
260 static int init_keyboard(KBDC kbdc, int *type, int flags);
261 static int write_kbd(KBDC kbdc, int command, int data);
262 static int get_kbd_id(KBDC kbdc);
345 KBDC kbdc;
354 kbdc = atkbdc_open(data[0]);
355 if (kbdc == NULL)
357 if (probe_keyboard(kbdc, flags)) {
421 state->kbdc = atkbdc_open(data[0]);
422 if (state->kbdc == NULL) {
435 if (probe_keyboard(state->kbdc, flags)) { /* shouldn't happen */
454 && init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config)
546 init_keyboard(state->kbdc, &kbd->kb_type, kbd->kb_config);
579 empty_both_buffers(((atkbd_state_t *)kbd->kb_data)->kbdc, 10);
581 if (!test_controller(((atkbd_state_t *)kbd->kb_data)->kbdc))
583 else if (test_kbd_port(((atkbd_state_t *)kbd->kb_data)->kbdc) != 0)
624 c = read_kbd_data(((atkbd_state_t *)kbd->kb_data)->kbdc);
626 c = read_kbd_data_no_wait(((atkbd_state_t *)kbd->kb_data)->kbdc);
638 return kbdc_data_ready(((atkbd_state_t *)kbd->kb_data)->kbdc);
664 scancode = read_kbd_data(state->kbdc);
667 scancode = read_kbd_data_no_wait(state->kbdc);
913 return kbdc_data_ready(state->kbdc);
994 error = write_kbd(state->kbdc, KBDC_SET_LEDS,
1036 error = write_kbd(state->kbdc, KBDC_SET_TYPEMATIC, i);
1059 error = write_kbd(state->kbdc, KBDC_SET_TYPEMATIC, *(int *)arg);
1090 return kbdc_lock(((atkbd_state_t *)kbd->kb_data)->kbdc, lock);
1128 if (((atkbd_state_t *)kbd->kb_data)->kbdc
1129 != ((atkbd_state_t *)buf)->kbdc)
1156 KBDC kbdc = ((atkbd_state_t *)kbd->kb_data)->kbdc;
1167 send_kbd_command(kbdc, KBDC_DISABLE_KBD);
1168 set_controller_command_byte(kbdc,
1171 send_kbd_command(kbdc, KBDC_ENABLE_KBD);
1176 atkbd_reset(KBDC kbdc, int flags, int c)
1179 if (!(flags & KB_CONF_NO_RESET) && !reset_kbd(kbdc)) {
1192 empty_both_buffers(kbdc, 10);
1193 test_controller(kbdc);
1194 test_kbd_port(kbdc);
1199 set_controller_command_byte(kbdc,
1200 ALLOW_DISABLE_KBD(kbdc) ? 0xff : KBD_KBD_CONTROL_BITS, c);
1233 error = write_kbd(state->kbdc, KBDC_SET_TYPEMATIC, val);
1243 setup_kbd_port(KBDC kbdc, int port, int intr)
1245 if (!set_controller_command_byte(kbdc,
1254 get_kbd_echo(KBDC kbdc)
1257 if (setup_kbd_port(kbdc, TRUE, FALSE))
1262 write_kbd_command(kbdc, KBDC_ECHO);
1263 if (read_kbd_data(kbdc) != KBD_ECHO) {
1264 empty_both_buffers(kbdc, 10);
1265 test_controller(kbdc);
1266 test_kbd_port(kbdc);
1271 if (setup_kbd_port(kbdc, TRUE, TRUE)) {
1283 probe_keyboard(KBDC kbdc, int flags)
1293 if (!kbdc_lock(kbdc, TRUE)) {
1299 write_controller_command(kbdc, KBDC_DISABLE_KBD_PORT);
1302 empty_both_buffers(kbdc, 100);
1305 m = kbdc_get_device_mask(kbdc) & ~KBD_KBD_CONTROL_BITS;
1306 c = get_controller_command_byte(kbdc);
1309 kbdc_set_device_mask(kbdc, m);
1310 kbdc_lock(kbdc, FALSE);
1321 test_controller(kbdc);
1323 test_kbd_port(kbdc);
1325 err = get_kbd_echo(kbdc);
1334 kbdc_set_device_mask(kbdc, m | KBD_KBD_CONTROL_BITS);
1335 setup_kbd_port(kbdc, TRUE, TRUE);
1338 kbdc_set_device_mask(kbdc, m | KBD_KBD_CONTROL_BITS);
1341 set_controller_command_byte(kbdc,
1342 ALLOW_DISABLE_KBD(kbdc) ? 0xff : KBD_KBD_CONTROL_BITS, c);
1343 kbdc_set_device_mask(kbdc, m);
1347 kbdc_lock(kbdc, FALSE);
1348 return (HAS_QUIRK(kbdc, KBDC_QUIRK_IGNORE_PROBE_RESULT) ? 0 : err);
1352 init_keyboard(KBDC kbdc, int *type, int flags)
1358 if (!kbdc_lock(kbdc, TRUE)) {
1364 write_controller_command(kbdc, KBDC_DISABLE_KBD_PORT);
1367 empty_both_buffers(kbdc, 200);
1368 c = get_controller_command_byte(kbdc);
1371 kbdc_lock(kbdc, FALSE);
1384 if (setup_kbd_port(kbdc, TRUE, FALSE)) {
1387 kbdc_lock(kbdc, FALSE);
1391 if (HAS_QUIRK(kbdc, KBDC_QUIRK_RESET_AFTER_PROBE) &&
1392 atkbd_reset(kbdc, flags, c)) {
1393 kbdc_lock(kbdc, FALSE);
1410 if (send_kbd_command_and_data(kbdc, KBDC_SET_SCANCODE_SET, 0)
1412 codeset = read_kbd_data(kbdc);
1419 id = get_kbd_id(kbdc);
1441 if (!HAS_QUIRK(kbdc, KBDC_QUIRK_RESET_AFTER_PROBE) &&
1442 atkbd_reset(kbdc, flags, c)) {
1443 kbdc_lock(kbdc, FALSE);
1453 if (send_kbd_command_and_data(kbdc,
1463 set_controller_command_byte(kbdc, ALLOW_DISABLE_KBD(kbdc)
1465 kbdc_lock(kbdc, FALSE);
1473 kbdc, KBDC_SET_SCANCODE_SET, 2) != KBD_ACK) {
1483 if (HAS_QUIRK(kbdc, KBDC_QUIRK_SETLEDS_ON_INIT) &&
1484 send_kbd_command_and_data(kbdc, KBDC_SET_LEDS, 0) != KBD_ACK) {
1487 if (!ALLOW_DISABLE_KBD(kbdc))
1488 send_kbd_command(kbdc, KBDC_ENABLE_KBD);
1491 if (!set_controller_command_byte(kbdc,
1500 set_controller_command_byte(kbdc, ALLOW_DISABLE_KBD(kbdc)
1503 kbdc_lock(kbdc, FALSE);
1508 kbdc_lock(kbdc, FALSE);
1513 write_kbd(KBDC kbdc, int command, int data)
1518 if (!kbdc_lock(kbdc, TRUE))
1524 c = get_controller_command_byte(kbdc);
1526 || !set_controller_command_byte(kbdc,
1527 kbdc_get_device_mask(kbdc),
1531 kbdc_lock(kbdc, FALSE);
1544 if (send_kbd_command_and_data(kbdc, command, data) != KBD_ACK)
1545 send_kbd_command(kbdc, KBDC_ENABLE_KBD);
1548 if (!set_controller_command_byte(kbdc, kbdc_get_device_mask(kbdc),
1555 kbdc_lock(kbdc, FALSE);
1561 get_kbd_id(KBDC kbdc)
1565 empty_both_buffers(kbdc, 10);
1567 if (send_kbd_command(kbdc, KBDC_SEND_DEV_ID) != KBD_ACK)
1571 id1 = read_kbd_data(kbdc);
1573 id2 = read_kbd_data(kbdc);
1576 empty_both_buffers(kbdc, 10);
1577 test_controller(kbdc);
1578 test_kbd_port(kbdc);