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

Lines Matching refs:kbdc

421 	KBDC		kbdc;		/* handle to access kbd controller */
510 #define ALWAYS_RESTORE_CONTROLLER(kbdc) !(kbdcp(kbdc)->quirks \
764 enable_aux_dev(KBDC kbdc)
768 res = send_aux_command(kbdc, PSMC_ENABLE_DEV);
775 disable_aux_dev(KBDC kbdc)
779 res = send_aux_command(kbdc, PSMC_DISABLE_DEV);
786 get_mouse_status(KBDC kbdc, int *status, int flag, int len)
801 empty_aux_buffer(kbdc, 5);
802 res = send_aux_command(kbdc, cmd);
809 status[i] = read_aux_data(kbdc);
824 get_aux_id(KBDC kbdc)
829 empty_aux_buffer(kbdc, 5);
830 res = send_aux_command(kbdc, PSMC_SEND_DEV_ID);
838 id = read_aux_data(kbdc);
845 set_mouse_sampling_rate(KBDC kbdc, int rate)
849 res = send_aux_command_and_data(kbdc, PSMC_SET_SAMPLING_RATE, rate);
856 set_mouse_scaling(KBDC kbdc, int scale)
869 res = send_aux_command(kbdc, scale);
878 set_mouse_resolution(KBDC kbdc, int val)
882 res = send_aux_command_and_data(kbdc, PSMC_SET_RESOLUTION, val);
893 set_mouse_mode(KBDC kbdc)
897 res = send_aux_command(kbdc, PSMC_SET_STREAM_MODE);
904 get_mouse_buttons(KBDC kbdc)
916 if (set_mouse_resolution(kbdc, PSMD_RES_LOW) != PSMD_RES_LOW)
918 if (set_mouse_scaling(kbdc, 1) && set_mouse_scaling(kbdc, 1) &&
919 set_mouse_scaling(kbdc, 1) &&
920 get_mouse_status(kbdc, status, 0, 3) >= 3 && status[1] != 0)
984 recover_from_error(KBDC kbdc)
987 empty_both_buffers(kbdc, 10);
994 reset_kbd(kbdc);
1000 if (!test_controller(kbdc))
1003 if (test_kbd_port(kbdc) != 0)
1009 restore_controller(KBDC kbdc, int command_byte)
1011 empty_both_buffers(kbdc, 10);
1013 if (!set_controller_command_byte(kbdc, 0xff, command_byte)) {
1016 empty_both_buffers(kbdc, 10);
1019 empty_both_buffers(kbdc, 10);
1034 KBDC kbdc = sc->kbdc;
1038 switch((i = test_aux_port(kbdc))) {
1052 recover_from_error(kbdc);
1070 if (!reset_aux_dev(kbdc)) {
1071 recover_from_error(kbdc);
1082 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) {
1087 empty_both_buffers(kbdc, 10); /* remove stray data if any */
1097 mode->rate = set_mouse_sampling_rate(kbdc, mode->rate);
1100 set_mouse_resolution(kbdc, mode->resolution);
1101 set_mouse_scaling(kbdc, 1);
1102 set_mouse_mode(kbdc);
1109 if (get_mouse_status(kbdc, stat, 0, 3) < 3)
1136 mux_enabled = enable_aux_mux(sc->kbdc) >= 0;
1138 set_active_aux_mux_port(sc->kbdc, sc->muxport);
1144 mouse_ext_command(sc->kbdc, SYNAPTICS_READ_MODES);
1145 get_mouse_status(sc->kbdc, stat, 0, 3);
1155 disable_aux_mux(sc->kbdc);
1177 if (!enable_aux_dev(sc->kbdc)) {
1184 recover_from_error(sc->kbdc);
1190 if (!doinitialize(sc, &sc->mode) || !enable_aux_dev(sc->kbdc)) {
1191 recover_from_error(sc->kbdc);
1195 restore_controller(sc->kbdc, command_byte);
1205 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
1210 if (!set_controller_command_byte(sc->kbdc,
1211 kbdc_get_device_mask(sc->kbdc),
1215 disable_aux_dev(sc->kbdc);
1216 restore_controller(sc->kbdc, command_byte);
1238 if (!kbdc_lock(sc->kbdc, TRUE))
1247 empty_both_buffers(sc->kbdc, 10);
1248 c = get_controller_command_byte(sc->kbdc);
1254 if ((c == -1) || !set_controller_command_byte(sc->kbdc,
1255 kbdc_get_device_mask(sc->kbdc),
1260 kbdc_lock(sc->kbdc, FALSE);
1270 disable_aux_dev(sc->kbdc);
1271 empty_aux_buffer(sc->kbdc, 10);
1286 restore_controller(sc->kbdc, c);
1306 if (!set_controller_command_byte(sc->kbdc,
1307 kbdc_get_device_mask(sc->kbdc),
1317 kbdc_lock(sc->kbdc, FALSE);
1361 kbdc_set_device_mask(sc->kbdc, mask); \
1362 kbdc_lock(sc->kbdc, FALSE); \
1392 sc->kbdc = atkbdc_open(device_get_unit(device_get_parent(dev)));
1410 if (!kbdc_lock(sc->kbdc, TRUE)) {
1424 empty_both_buffers(sc->kbdc, 10);
1427 mask = kbdc_get_device_mask(sc->kbdc) & ~KBD_AUX_CONTROL_BITS;
1428 command_byte = get_controller_command_byte(sc->kbdc);
1443 if (!set_controller_command_byte(sc->kbdc,
1451 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1452 restore_controller(sc->kbdc, command_byte);
1456 write_controller_command(sc->kbdc, KBDC_ENABLE_AUX_PORT);
1475 switch ((i = test_aux_port(sc->kbdc))) {
1488 recover_from_error(sc->kbdc);
1491 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1492 restore_controller(sc->kbdc, command_byte);
1513 if (!reset_aux_dev(sc->kbdc)) {
1514 recover_from_error(sc->kbdc);
1515 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1516 restore_controller(sc->kbdc, command_byte);
1521 } else if (!reset_aux_dev(sc->kbdc)) {
1522 recover_from_error(sc->kbdc);
1535 if (!enable_aux_dev(sc->kbdc) || !disable_aux_dev(sc->kbdc)) {
1537 recover_from_error(sc->kbdc);
1538 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1539 restore_controller(sc->kbdc, command_byte);
1547 if (get_mouse_status(sc->kbdc, stat, 0, 3) >= 3) {
1559 sc->hw.hwid = get_aux_id(sc->kbdc);
1561 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1562 restore_controller(sc->kbdc, command_byte);
1589 sc->hw.buttons = get_mouse_buttons(sc->kbdc);
1623 i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
1629 set_mouse_resolution(sc->kbdc,
1633 set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
1636 set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
1637 set_mouse_scaling(sc->kbdc, 1);
1648 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
1660 if (!set_controller_command_byte(sc->kbdc,
1668 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1669 restore_controller(sc->kbdc, command_byte);
1675 kbdc_set_device_mask(sc->kbdc, mask | KBD_AUX_CONTROL_BITS);
1676 kbdc_lock(sc->kbdc, FALSE);
2251 /* don't let timeout routines in the keyboard driver to poll the kbdc */
2252 if (!kbdc_lock(sc->kbdc, TRUE))
2257 command_byte = get_controller_command_byte(sc->kbdc);
2260 if (command_byte == -1 || !set_controller_command_byte(sc->kbdc,
2261 kbdc_get_device_mask(sc->kbdc),
2265 kbdc_lock(sc->kbdc, FALSE);
2285 kbdc_lock(sc->kbdc, FALSE);
2296 /* don't let timeout routines in the keyboard driver to poll the kbdc */
2297 if (!kbdc_lock(sc->kbdc, TRUE))
2302 command_byte = get_controller_command_byte(sc->kbdc);
2304 kbdc_lock(sc->kbdc, FALSE);
2310 if (!set_controller_command_byte(sc->kbdc,
2311 kbdc_get_device_mask(sc->kbdc),
2330 empty_aux_buffer(sc->kbdc, 10);
2334 if (!disable_aux_dev(sc->kbdc)) {
2346 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
2352 if (!set_controller_command_byte(sc->kbdc,
2353 kbdc_get_device_mask(sc->kbdc),
2366 empty_aux_buffer(sc->kbdc, 10);
2369 kbdc_lock(sc->kbdc, FALSE);
2498 if (!kbdc_lock(sc->kbdc, TRUE))
2502 *c = get_controller_command_byte(sc->kbdc);
2503 if ((*c == -1) || !set_controller_command_byte(sc->kbdc,
2504 kbdc_get_device_mask(sc->kbdc),
2509 kbdc_lock(sc->kbdc, FALSE);
2525 empty_aux_buffer(sc->kbdc, 0); /* flush the queue */
2526 read_aux_data_no_wait(sc->kbdc); /* throw away data if any */
2564 empty_aux_buffer(sc->kbdc, 0);
2567 if (!set_controller_command_byte(sc->kbdc,
2568 kbdc_get_device_mask(sc->kbdc),
2578 kbdc_lock(sc->kbdc, FALSE);
2603 if (!write_aux_command(sc->kbdc, buf[i])) {
2775 mode.rate = set_mouse_sampling_rate(sc->kbdc,
2779 set_mouse_resolution(sc->kbdc, mode.resolution);
2780 set_mouse_scaling(sc->kbdc, 1);
2781 get_mouse_status(sc->kbdc, stat, 0, 3);
2826 if ((data->len = get_mouse_status(sc->kbdc, data->buf,
2856 set_mouse_resolution(sc->kbdc, mode.resolution);
2876 sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, mode.rate);
2891 if (!set_mouse_scaling(sc->kbdc, *(int *)addr))
2903 sc->hw.hwid |= get_aux_id(sc->kbdc);
2933 if (sc->watchdog && kbdc_lock(sc->kbdc, TRUE)) {
2936 kbdc_lock(sc->kbdc, FALSE);
2999 if (aux_mux_is_enabled(sc->kbdc))
3004 while((c = read_aux_data_no_wait(sc->kbdc)) != -1) {
3089 disable_aux_dev(sc->kbdc);
3090 enable_aux_dev(sc->kbdc);
5275 static int mouse_id_proc1(KBDC kbdc, int res, int scale, int *status)
5277 if (set_mouse_resolution(kbdc, res) != res)
5279 if (set_mouse_scaling(kbdc, scale) &&
5280 set_mouse_scaling(kbdc, scale) &&
5281 set_mouse_scaling(kbdc, scale) &&
5282 (get_mouse_status(kbdc, status, 0, 3) >= 3))
5288 mouse_ext_command(KBDC kbdc, int command)
5293 if (set_mouse_resolution(kbdc, c) != c)
5296 if (set_mouse_resolution(kbdc, c) != c)
5299 if (set_mouse_resolution(kbdc, c) != c)
5302 if (set_mouse_resolution(kbdc, c) != c)
5312 KBDC kbdc = sc->kbdc;
5316 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 2, status))
5335 KBDC kbdc = sc->kbdc;
5359 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 1, status))
5373 KBDC kbdc = sc->kbdc;
5386 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 1, status))
5397 KBDC kbdc = sc->kbdc;
5407 if (set_mouse_sampling_rate(kbdc, 100) != 100)
5409 if (!mouse_id_proc1(kbdc, PSMD_RES_LOW, 2, status))
5421 KBDC kbdc = sc->kbdc;
5427 id1 = get_aux_id(kbdc);
5428 if (set_mouse_sampling_rate(kbdc, 10) != 10)
5434 id2 = get_aux_id(kbdc);
5438 if (set_mouse_resolution(kbdc, PSMD_RES_LOW) != PSMD_RES_LOW)
5442 if (get_mouse_status(kbdc, status, 0, 3) < 3)
5451 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5458 if (get_mouse_status(kbdc, status, 0, 3) < 3)
5464 disable_aux_dev(kbdc);
5465 empty_aux_buffer(kbdc, 5);
5474 KBDC kbdc = sc->kbdc;
5483 if (!set_mouse_scaling(kbdc, 1))
5485 if (!mouse_ext_command(kbdc, 0x39) || !mouse_ext_command(kbdc, 0xdb))
5487 if (get_mouse_status(kbdc, data, 1, 3) < 3)
5533 KBDC kbdc = sc->kbdc;
5548 if (set_mouse_sampling_rate(kbdc, rate1[i]) != rate1[i])
5551 id = get_aux_id(kbdc);
5571 if (set_mouse_sampling_rate(kbdc, rate0[i]) != rate0[i])
5573 get_aux_id(kbdc);
5586 KBDC kbdc = sc->kbdc;
5593 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5596 id = get_aux_id(kbdc);
5616 KBDC kbdc = sc->kbdc;
5621 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5623 id = get_aux_id(kbdc);
5648 KBDC kbdc = sc->kbdc;
5657 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5661 id = get_aux_id(kbdc);
6229 mouse_ext_command(sc->kbdc, mode_byte);
6232 set_mouse_sampling_rate(sc->kbdc, 20);
6240 mouse_ext_command(sc->kbdc, SYNAPTICS_READ_MODEL_ID);
6241 set_mouse_sampling_rate(sc->kbdc, 0xc8);
6253 KBDC kbdc = sc->kbdc;
6260 (kbdcp(kbdc)->quirks & KBDC_QUIRK_DISABLE_MUX_PROBE) != 0))
6263 version = enable_aux_mux(kbdc);
6269 set_active_aux_mux_port(kbdc, port);
6270 if (enable_aux_dev(kbdc) && disable_aux_dev(kbdc)) {
6287 set_active_aux_mux_port(kbdc, port);
6298 disable_aux_mux(kbdc);
6301 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) {
6306 reset_kbd(kbdc);
6307 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) {
6313 empty_both_buffers(kbdc, 10); /* remove stray data if any */
6323 KBDC kbdc = sc->kbdc;
6336 set_mouse_scaling(kbdc, 1);
6339 if (mouse_ext_command(kbdc, SYNAPTICS_READ_IDENTITY) == 0)
6341 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6360 if (mouse_ext_command(kbdc, SYNAPTICS_READ_MODEL_ID) == 0)
6362 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6400 if (mouse_ext_command(kbdc, SYNAPTICS_READ_CAPABILITIES) == 0)
6402 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6429 if (!set_mouse_scaling(kbdc, 1))
6431 if (mouse_ext_command(kbdc, SYNAPTICS_READ_RESOLUTIONS) == 0)
6433 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6466 if (!set_mouse_scaling(kbdc, 1))
6468 if (mouse_ext_command(kbdc,
6471 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6506 if (!set_mouse_scaling(kbdc, 1))
6508 if (mouse_ext_command(kbdc,
6511 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6528 if (!set_mouse_scaling(kbdc, 1))
6530 if (mouse_ext_command(kbdc,
6533 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6543 if (!set_mouse_scaling(kbdc, 1))
6545 if (mouse_ext_command(kbdc,
6548 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6642 if (mouse_ext_command(kbdc, SYNAPTICS_READ_MODES) == 0)
6644 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6688 set_mouse_scaling(sc->kbdc, 2);
6689 set_mouse_scaling(sc->kbdc, 1);
6706 if (send_aux_command(sc->kbdc, 0xe7) != PSM_ACK) {
6710 if (send_aux_command(sc->kbdc, seq[i]) != PSM_ACK) {
6915 KBDC kbdc = sc->kbdc;
6928 if (send_aux_command(kbdc, 0xe1) != PSM_ACK ||
6929 read_aux_data(kbdc) != 0x01)
6931 id = read_aux_data(kbdc);
6969 KBDC kbdc = sc->kbdc;
6972 set_mouse_resolution(kbdc, PSMD_RES_MEDIUM_HIGH); /* set res. 2 */
6973 set_mouse_sampling_rate(kbdc, 100); /* set rate 100 */
6974 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
6975 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
6976 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
6977 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
6978 if (get_mouse_status(kbdc, data, 0, 3) < 3) /* get status */
6982 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
6989 elantech_read_1(KBDC kbdc, int hwversion, int reg, int *val)
6997 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
6998 res |= send_aux_command(kbdc, readcmd) != PSM_ACK;
6999 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7000 res |= send_aux_command(kbdc, reg) != PSM_ACK;
7001 res |= get_mouse_status(kbdc, resp, 0, 3) != 3;
7010 elantech_write_1(KBDC kbdc, int hwversion, int reg, int val)
7016 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7017 res |= send_aux_command(kbdc, writecmd) != PSM_ACK;
7018 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7019 res |= send_aux_command(kbdc, reg) != PSM_ACK;
7021 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7022 res |= send_aux_command(kbdc, writecmd) != PSM_ACK;
7024 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7025 res |= send_aux_command(kbdc, val) != PSM_ACK;
7026 res |= set_mouse_scaling(kbdc, 1) == 0;
7032 elantech_cmd(KBDC kbdc, int hwversion, int cmd, int *resp)
7037 res = set_mouse_scaling(kbdc, 1) == 0;
7038 res |= mouse_ext_command(kbdc, cmd) == 0;
7040 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7041 res |= send_aux_command(kbdc, cmd) != PSM_ACK;
7043 res |= get_mouse_status(kbdc, resp, 0, 3) != 3;
7049 elantech_init(KBDC kbdc, elantechhw_t *elanhw)
7059 res = elantech_write_1(kbdc, hwversion, 0x10, reg10);
7062 res = elantech_write_1(kbdc, hwversion, 0x11, 0x8A);
7066 res = elantech_write_1(kbdc, hwversion, 0x10, reg10);
7069 res = elantech_write_1(kbdc, hwversion, 0x07, 0x01);
7078 if (elantech_read_1(kbdc, hwversion, 0x10, &val) == 0)
7205 KBDC kbdc = sc->kbdc;
7209 set_mouse_scaling(kbdc, 1);
7210 set_mouse_scaling(kbdc, 1);
7211 set_mouse_scaling(kbdc, 1);
7212 if (get_mouse_status(kbdc, resp, 0, 3) != 3)
7219 if (elantech_cmd(kbdc, 2, ELANTECH_FW_VERSION, resp))
7250 if (elantech_cmd(kbdc, hwversion, ELANTECH_CAPABILITIES, resp) != 0) {
7262 if (elantech_cmd(kbdc, hwversion, ELANTECH_RESOLUTION, resp)
7280 if (elantech_init(kbdc, &elanhw)) {
7298 if (elantech_cmd(kbdc, hwversion, ELANTECH_FW_ID, resp) != 0) {
7304 !elantech_cmd(kbdc, hwversion, ELANTECH_SAMPLE, resp)) {