Lines Matching refs:kbdc
439 KBDC kbdc; /* handle to access kbd controller */ member
525 #define ALWAYS_RESTORE_CONTROLLER(kbdc) !(kbdc->quirks \ argument
790 enable_aux_dev(KBDC kbdc) in enable_aux_dev() argument
795 res = send_aux_command(kbdc, PSMC_ENABLE_DEV); in enable_aux_dev()
802 disable_aux_dev(KBDC kbdc) in disable_aux_dev() argument
807 res = send_aux_command(kbdc, PSMC_DISABLE_DEV); in disable_aux_dev()
814 get_mouse_status(KBDC kbdc, int *status, int flag, int len) in get_mouse_status() argument
830 empty_aux_buffer(kbdc, 5); in get_mouse_status()
831 res = send_aux_command(kbdc, cmd); in get_mouse_status()
838 status[i] = read_aux_data(kbdc); in get_mouse_status()
853 get_aux_id(KBDC kbdc) in get_aux_id() argument
858 empty_aux_buffer(kbdc, 5); in get_aux_id()
859 res = send_aux_command(kbdc, PSMC_SEND_DEV_ID); in get_aux_id()
867 id = read_aux_data(kbdc); in get_aux_id()
874 set_mouse_sampling_rate(KBDC kbdc, int rate) in set_mouse_sampling_rate() argument
879 res = send_aux_command_and_data(kbdc, PSMC_SET_SAMPLING_RATE, rate); in set_mouse_sampling_rate()
886 set_mouse_scaling(KBDC kbdc, int scale) in set_mouse_scaling() argument
900 res = send_aux_command(kbdc, scale); in set_mouse_scaling()
909 set_mouse_resolution(KBDC kbdc, int val) in set_mouse_resolution() argument
914 res = send_aux_command_and_data(kbdc, PSMC_SET_RESOLUTION, val); in set_mouse_resolution()
925 set_mouse_mode(KBDC kbdc) in set_mouse_mode() argument
930 res = send_aux_command(kbdc, PSMC_SET_STREAM_MODE); in set_mouse_mode()
937 get_mouse_buttons(KBDC kbdc) in get_mouse_buttons() argument
950 if (set_mouse_resolution(kbdc, PSMD_RES_LOW) != PSMD_RES_LOW) in get_mouse_buttons()
952 if (set_mouse_scaling(kbdc, 1) && set_mouse_scaling(kbdc, 1) && in get_mouse_buttons()
953 set_mouse_scaling(kbdc, 1) && in get_mouse_buttons()
954 get_mouse_status(kbdc, status, 0, 3) >= 3 && status[1] != 0) in get_mouse_buttons()
1019 recover_from_error(KBDC kbdc) in recover_from_error() argument
1023 empty_both_buffers(kbdc, 10); in recover_from_error()
1030 reset_kbd(kbdc); in recover_from_error()
1036 if (!test_controller(kbdc)) in recover_from_error()
1039 if (test_kbd_port(kbdc) != 0) in recover_from_error()
1045 restore_controller(KBDC kbdc, int command_byte) in restore_controller() argument
1048 empty_both_buffers(kbdc, 10); in restore_controller()
1050 if (!set_controller_command_byte(kbdc, 0xff, command_byte)) { in restore_controller()
1053 empty_both_buffers(kbdc, 10); in restore_controller()
1056 empty_both_buffers(kbdc, 10); in restore_controller()
1072 KBDC kbdc = sc->kbdc; in doinitialize() local
1076 switch((i = test_aux_port(kbdc))) { in doinitialize()
1089 recover_from_error(kbdc); in doinitialize()
1107 if (!reset_aux_dev(kbdc)) { in doinitialize()
1108 recover_from_error(kbdc); in doinitialize()
1119 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) { in doinitialize()
1124 empty_both_buffers(kbdc, 10); /* remove stray data if any */ in doinitialize()
1134 mode->rate = set_mouse_sampling_rate(kbdc, mode->rate); in doinitialize()
1137 set_mouse_resolution(kbdc, mode->resolution); in doinitialize()
1138 set_mouse_scaling(kbdc, 1); in doinitialize()
1139 set_mouse_mode(kbdc); in doinitialize()
1146 if (get_mouse_status(kbdc, stat, 0, 3) < 3) in doinitialize()
1174 mux_enabled = enable_aux_mux(sc->kbdc) >= 0;
1176 set_active_aux_mux_port(sc->kbdc, sc->muxport);
1181 mouse_ext_command(sc->kbdc, SYNAPTICS_READ_MODES);
1182 get_mouse_status(sc->kbdc, stat, 0, 3);
1191 disable_aux_mux(sc->kbdc);
1211 if (!enable_aux_dev(sc->kbdc)) {
1218 recover_from_error(sc->kbdc);
1224 if (!doinitialize(sc, &sc->mode) || !enable_aux_dev(sc->kbdc)) {
1225 recover_from_error(sc->kbdc);
1229 restore_controller(sc->kbdc, command_byte);
1238 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
1243 if (!set_controller_command_byte(sc->kbdc,
1244 kbdc_get_device_mask(sc->kbdc),
1248 disable_aux_dev(sc->kbdc);
1249 restore_controller(sc->kbdc, command_byte);
1269 if (!kbdc_lock(sc->kbdc, TRUE))
1279 empty_both_buffers(sc->kbdc, 10);
1280 c = get_controller_command_byte(sc->kbdc);
1285 if ((c == -1) || !set_controller_command_byte(sc->kbdc,
1286 kbdc_get_device_mask(sc->kbdc),
1291 kbdc_lock(sc->kbdc, FALSE);
1300 disable_aux_dev(sc->kbdc);
1301 empty_aux_buffer(sc->kbdc, 10);
1316 restore_controller(sc->kbdc, c);
1335 if (!set_controller_command_byte(sc->kbdc,
1336 kbdc_get_device_mask(sc->kbdc),
1346 kbdc_lock(sc->kbdc, FALSE);
1396 kbdc_set_device_mask(sc->kbdc, mask); \
1397 kbdc_lock(sc->kbdc, FALSE); \
1421 sc->kbdc = atkbdc_open(device_get_unit(device_get_parent(dev)));
1422 if (sc->kbdc == NULL)
1441 if (!kbdc_lock(sc->kbdc, TRUE)) {
1456 empty_both_buffers(sc->kbdc, 10);
1459 mask = kbdc_get_device_mask(sc->kbdc) & ~KBD_AUX_CONTROL_BITS;
1460 command_byte = get_controller_command_byte(sc->kbdc);
1489 if (!set_controller_command_byte(sc->kbdc,
1497 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1498 restore_controller(sc->kbdc, command_byte);
1508 write_controller_command(sc->kbdc, KBDC_ENABLE_AUX_PORT);
1528 switch ((i = test_aux_port(sc->kbdc))) {
1541 recover_from_error(sc->kbdc);
1544 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1545 restore_controller(sc->kbdc, command_byte);
1566 if (!reset_aux_dev(sc->kbdc)) {
1567 recover_from_error(sc->kbdc);
1568 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1569 restore_controller(sc->kbdc, command_byte);
1574 } else if (!reset_aux_dev(sc->kbdc)) {
1575 recover_from_error(sc->kbdc);
1588 if (!enable_aux_dev(sc->kbdc) || !disable_aux_dev(sc->kbdc)) {
1590 recover_from_error(sc->kbdc);
1591 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1592 restore_controller(sc->kbdc, command_byte);
1599 if (get_mouse_status(sc->kbdc, stat, 0, 3) >= 3) {
1611 sc->hw.hwid = get_aux_id(sc->kbdc);
1613 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1614 restore_controller(sc->kbdc, command_byte);
1642 sc->hw.buttons = get_mouse_buttons(sc->kbdc);
1676 i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
1682 set_mouse_resolution(sc->kbdc,
1686 set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
1689 set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
1690 set_mouse_scaling(sc->kbdc, 1);
1701 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
1713 if (!set_controller_command_byte(sc->kbdc,
1721 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1722 restore_controller(sc->kbdc, command_byte);
1728 kbdc_set_device_mask(sc->kbdc, mask | KBD_AUX_CONTROL_BITS);
1729 kbdc_lock(sc->kbdc, FALSE);
2300 if (!kbdc_lock(sc->kbdc, TRUE))
2305 command_byte = get_controller_command_byte(sc->kbdc);
2308 if (command_byte == -1 || !set_controller_command_byte(sc->kbdc,
2309 kbdc_get_device_mask(sc->kbdc),
2313 kbdc_lock(sc->kbdc, FALSE);
2332 kbdc_lock(sc->kbdc, FALSE);
2343 if (!kbdc_lock(sc->kbdc, TRUE))
2348 command_byte = get_controller_command_byte(sc->kbdc);
2350 kbdc_lock(sc->kbdc, FALSE);
2356 if (!set_controller_command_byte(sc->kbdc,
2357 kbdc_get_device_mask(sc->kbdc),
2375 empty_aux_buffer(sc->kbdc, 10);
2379 if (!disable_aux_dev(sc->kbdc)) {
2390 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
2395 if (!set_controller_command_byte(sc->kbdc,
2396 kbdc_get_device_mask(sc->kbdc),
2408 empty_aux_buffer(sc->kbdc, 10);
2411 kbdc_lock(sc->kbdc, FALSE);
2542 if (!kbdc_lock(sc->kbdc, TRUE))
2546 *c = get_controller_command_byte(sc->kbdc);
2547 if ((*c == -1) || !set_controller_command_byte(sc->kbdc,
2548 kbdc_get_device_mask(sc->kbdc),
2553 kbdc_lock(sc->kbdc, FALSE);
2569 empty_aux_buffer(sc->kbdc, 0); /* flush the queue */
2570 read_aux_data_no_wait(sc->kbdc); /* throw away data if any */
2609 empty_aux_buffer(sc->kbdc, 0);
2612 if (!set_controller_command_byte(sc->kbdc,
2613 kbdc_get_device_mask(sc->kbdc),
2623 kbdc_lock(sc->kbdc, FALSE);
2789 mode.rate = set_mouse_sampling_rate(sc->kbdc,
2793 set_mouse_resolution(sc->kbdc, mode.resolution);
2794 set_mouse_scaling(sc->kbdc, 1);
2795 get_mouse_status(sc->kbdc, stat, 0, 3);
2840 if ((data->len = get_mouse_status(sc->kbdc, data->buf,
2870 set_mouse_resolution(sc->kbdc, mode.resolution);
2890 sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, mode.rate);
2905 if (!set_mouse_scaling(sc->kbdc, *(int *)addr))
2917 sc->hw.hwid |= get_aux_id(sc->kbdc);
2944 if (sc->watchdog && kbdc_lock(sc->kbdc, TRUE)) {
2947 kbdc_lock(sc->kbdc, FALSE);
3010 if (aux_mux_is_enabled(sc->kbdc))
3015 while((c = read_aux_data_no_wait(sc->kbdc)) != -1) {
3101 disable_aux_dev(sc->kbdc);
3102 enable_aux_dev(sc->kbdc);
5324 static int mouse_id_proc1(KBDC kbdc, int res, int scale, int *status) argument
5327 if (set_mouse_resolution(kbdc, res) != res)
5329 if (set_mouse_scaling(kbdc, scale) &&
5330 set_mouse_scaling(kbdc, scale) &&
5331 set_mouse_scaling(kbdc, scale) &&
5332 (get_mouse_status(kbdc, status, 0, 3) >= 3))
5338 mouse_ext_command(KBDC kbdc, int command) argument
5344 if (set_mouse_resolution(kbdc, c) != c)
5347 if (set_mouse_resolution(kbdc, c) != c)
5350 if (set_mouse_resolution(kbdc, c) != c)
5353 if (set_mouse_resolution(kbdc, c) != c)
5362 KBDC kbdc = sc->kbdc; local
5386 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 1, status))
5400 KBDC kbdc = sc->kbdc; local
5413 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 1, status))
5424 KBDC kbdc = sc->kbdc; local
5434 if (set_mouse_sampling_rate(kbdc, 100) != 100)
5436 if (!mouse_id_proc1(kbdc, PSMD_RES_LOW, 2, status))
5448 KBDC kbdc = sc->kbdc; local
5454 id1 = get_aux_id(kbdc);
5455 if (set_mouse_sampling_rate(kbdc, 10) != 10)
5461 id2 = get_aux_id(kbdc);
5465 if (set_mouse_resolution(kbdc, PSMD_RES_LOW) != PSMD_RES_LOW)
5469 if (get_mouse_status(kbdc, status, 0, 3) < 3)
5478 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5485 if (get_mouse_status(kbdc, status, 0, 3) < 3)
5491 disable_aux_dev(kbdc);
5492 empty_aux_buffer(kbdc, 5);
5501 KBDC kbdc = sc->kbdc; local
5510 if (!set_mouse_scaling(kbdc, 1))
5512 if (!mouse_ext_command(kbdc, 0x39) || !mouse_ext_command(kbdc, 0xdb))
5514 if (get_mouse_status(kbdc, data, 1, 3) < 3)
5560 KBDC kbdc = sc->kbdc; local
5575 if (set_mouse_sampling_rate(kbdc, rate1[i]) != rate1[i])
5578 id = get_aux_id(kbdc);
5598 if (set_mouse_sampling_rate(kbdc, rate0[i]) != rate0[i])
5600 get_aux_id(kbdc);
5613 KBDC kbdc = sc->kbdc; local
5620 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5623 id = get_aux_id(kbdc);
5643 KBDC kbdc = sc->kbdc; local
5648 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5650 id = get_aux_id(kbdc);
5675 KBDC kbdc = sc->kbdc; local
5688 id = get_aux_id(kbdc);
6293 mouse_ext_command(sc->kbdc, mode_byte);
6296 set_mouse_sampling_rate(sc->kbdc, 20);
6304 mouse_ext_command(sc->kbdc, SYNAPTICS_READ_MODEL_ID);
6305 set_mouse_sampling_rate(sc->kbdc, 0xc8);
6317 KBDC kbdc = sc->kbdc; local
6328 version = enable_aux_mux(kbdc);
6334 set_active_aux_mux_port(kbdc, port);
6335 if (enable_aux_dev(kbdc) && disable_aux_dev(kbdc)) {
6351 set_active_aux_mux_port(kbdc, port);
6361 disable_aux_mux(kbdc);
6364 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) {
6369 reset_kbd(kbdc);
6370 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) {
6376 empty_both_buffers(kbdc, 10); /* remove stray data if any */
6396 KBDC kbdc = sc->kbdc; local
6409 set_mouse_scaling(kbdc, 1);
6412 if (mouse_ext_command(kbdc, SYNAPTICS_READ_IDENTITY) == 0)
6414 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6433 if (mouse_ext_command(kbdc, SYNAPTICS_READ_MODEL_ID) == 0)
6435 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6473 if (mouse_ext_command(kbdc, SYNAPTICS_READ_CAPABILITIES) == 0)
6475 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6502 if (!set_mouse_scaling(kbdc, 1))
6504 if (mouse_ext_command(kbdc, SYNAPTICS_READ_RESOLUTIONS) == 0)
6506 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6539 if (!set_mouse_scaling(kbdc, 1))
6541 if (mouse_ext_command(kbdc,
6544 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6579 if (!set_mouse_scaling(kbdc, 1))
6581 if (mouse_ext_command(kbdc,
6584 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6601 if (!set_mouse_scaling(kbdc, 1))
6603 if (mouse_ext_command(kbdc,
6606 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6616 if (!set_mouse_scaling(kbdc, 1))
6618 if (mouse_ext_command(kbdc,
6621 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6715 if (mouse_ext_command(kbdc, SYNAPTICS_READ_MODES) == 0)
6717 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6760 set_mouse_scaling(sc->kbdc, 2);
6761 set_mouse_scaling(sc->kbdc, 1);
6778 if (send_aux_command(sc->kbdc, 0xe7) != PSM_ACK) {
6782 if (send_aux_command(sc->kbdc, seq[i]) != PSM_ACK) {
6999 KBDC kbdc = sc->kbdc; local
7012 if (send_aux_command(kbdc, 0xe1) != PSM_ACK)
7014 vendor = read_aux_data(kbdc);
7017 firmware = read_aux_data(kbdc);
7057 KBDC kbdc = sc->kbdc; local
7060 set_mouse_resolution(kbdc, PSMD_RES_MEDIUM_HIGH); /* set res. 2 */
7061 set_mouse_sampling_rate(kbdc, 100); /* set rate 100 */
7062 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7063 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7064 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7065 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7066 if (get_mouse_status(kbdc, data, 0, 3) < 3) /* get status */
7070 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7077 elantech_read_1(KBDC kbdc, int hwversion, int reg, int *val) argument
7085 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7086 res |= send_aux_command(kbdc, readcmd) != PSM_ACK;
7087 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7088 res |= send_aux_command(kbdc, reg) != PSM_ACK;
7089 res |= get_mouse_status(kbdc, resp, 0, 3) != 3;
7098 elantech_write_1(KBDC kbdc, int hwversion, int reg, int val) argument
7104 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7105 res |= send_aux_command(kbdc, writecmd) != PSM_ACK;
7106 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7107 res |= send_aux_command(kbdc, reg) != PSM_ACK;
7109 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7110 res |= send_aux_command(kbdc, writecmd) != PSM_ACK;
7112 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7113 res |= send_aux_command(kbdc, val) != PSM_ACK;
7114 res |= set_mouse_scaling(kbdc, 1) == 0;
7120 elantech_cmd(KBDC kbdc, int hwversion, int cmd, int *resp) argument
7125 res = set_mouse_scaling(kbdc, 1) == 0;
7126 res |= mouse_ext_command(kbdc, cmd) == 0;
7128 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7129 res |= send_aux_command(kbdc, cmd) != PSM_ACK;
7131 res |= get_mouse_status(kbdc, resp, 0, 3) != 3;
7137 elantech_init(KBDC kbdc, elantechhw_t *elanhw) argument
7147 res = elantech_write_1(kbdc, hwversion, 0x10, reg10);
7150 res = elantech_write_1(kbdc, hwversion, 0x11, 0x8A);
7154 res = elantech_write_1(kbdc, hwversion, 0x10, reg10);
7157 res = elantech_write_1(kbdc, hwversion, 0x07, 0x01);
7166 if (elantech_read_1(kbdc, hwversion, 0x10, &val) == 0)
7293 KBDC kbdc = sc->kbdc; local
7297 set_mouse_scaling(kbdc, 1);
7298 set_mouse_scaling(kbdc, 1);
7299 set_mouse_scaling(kbdc, 1);
7300 if (get_mouse_status(kbdc, resp, 0, 3) != 3)
7307 if (elantech_cmd(kbdc, 2, ELANTECH_FW_VERSION, resp))
7338 if (elantech_cmd(kbdc, hwversion, ELANTECH_CAPABILITIES, resp) != 0) {
7350 if (elantech_cmd(kbdc, hwversion, ELANTECH_RESOLUTION, resp)
7368 if (elantech_init(kbdc, &elanhw)) {
7386 if (elantech_cmd(kbdc, hwversion, ELANTECH_FW_ID, resp) != 0) {
7392 !elantech_cmd(kbdc, hwversion, ELANTECH_SAMPLE, resp)) {