Lines Matching refs:kbdc

424 	KBDC		kbdc;		/* handle to access kbd controller */  member
513 #define ALWAYS_RESTORE_CONTROLLER(kbdc) !(kbdcp(kbdc)->quirks \ argument
769 enable_aux_dev(KBDC kbdc) in enable_aux_dev() argument
773 res = send_aux_command(kbdc, PSMC_ENABLE_DEV); in enable_aux_dev()
780 disable_aux_dev(KBDC kbdc) in disable_aux_dev() argument
784 res = send_aux_command(kbdc, PSMC_DISABLE_DEV); in disable_aux_dev()
791 get_mouse_status(KBDC kbdc, int *status, int flag, int len) in get_mouse_status() argument
806 empty_aux_buffer(kbdc, 5); in get_mouse_status()
807 res = send_aux_command(kbdc, cmd); in get_mouse_status()
814 status[i] = read_aux_data(kbdc); in get_mouse_status()
829 get_aux_id(KBDC kbdc) in get_aux_id() argument
834 empty_aux_buffer(kbdc, 5); in get_aux_id()
835 res = send_aux_command(kbdc, PSMC_SEND_DEV_ID); in get_aux_id()
843 id = read_aux_data(kbdc); in get_aux_id()
850 set_mouse_sampling_rate(KBDC kbdc, int rate) in set_mouse_sampling_rate() argument
854 res = send_aux_command_and_data(kbdc, PSMC_SET_SAMPLING_RATE, rate); in set_mouse_sampling_rate()
861 set_mouse_scaling(KBDC kbdc, int scale) in set_mouse_scaling() argument
874 res = send_aux_command(kbdc, scale); in set_mouse_scaling()
883 set_mouse_resolution(KBDC kbdc, int val) in set_mouse_resolution() argument
887 res = send_aux_command_and_data(kbdc, PSMC_SET_RESOLUTION, val); in set_mouse_resolution()
898 set_mouse_mode(KBDC kbdc) in set_mouse_mode() argument
902 res = send_aux_command(kbdc, PSMC_SET_STREAM_MODE); in set_mouse_mode()
909 get_mouse_buttons(KBDC kbdc) in get_mouse_buttons() argument
921 if (set_mouse_resolution(kbdc, PSMD_RES_LOW) != PSMD_RES_LOW) in get_mouse_buttons()
923 if (set_mouse_scaling(kbdc, 1) && set_mouse_scaling(kbdc, 1) && in get_mouse_buttons()
924 set_mouse_scaling(kbdc, 1) && in get_mouse_buttons()
925 get_mouse_status(kbdc, status, 0, 3) >= 3 && status[1] != 0) in get_mouse_buttons()
989 recover_from_error(KBDC kbdc) in recover_from_error() argument
992 empty_both_buffers(kbdc, 10); in recover_from_error()
999 reset_kbd(kbdc); in recover_from_error()
1005 if (!test_controller(kbdc)) in recover_from_error()
1008 if (test_kbd_port(kbdc) != 0) in recover_from_error()
1014 restore_controller(KBDC kbdc, int command_byte) in restore_controller() argument
1016 empty_both_buffers(kbdc, 10); in restore_controller()
1018 if (!set_controller_command_byte(kbdc, 0xff, command_byte)) { in restore_controller()
1021 empty_both_buffers(kbdc, 10); in restore_controller()
1024 empty_both_buffers(kbdc, 10); in restore_controller()
1039 KBDC kbdc = sc->kbdc; in doinitialize() local
1043 switch((i = test_aux_port(kbdc))) { in doinitialize()
1056 recover_from_error(kbdc); in doinitialize()
1074 if (!reset_aux_dev(kbdc)) { in doinitialize()
1075 recover_from_error(kbdc); in doinitialize()
1086 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) { in doinitialize()
1091 empty_both_buffers(kbdc, 10); /* remove stray data if any */ in doinitialize()
1101 mode->rate = set_mouse_sampling_rate(kbdc, mode->rate); in doinitialize()
1104 set_mouse_resolution(kbdc, mode->resolution); in doinitialize()
1105 set_mouse_scaling(kbdc, 1); in doinitialize()
1106 set_mouse_mode(kbdc); in doinitialize()
1113 if (get_mouse_status(kbdc, stat, 0, 3) < 3) in doinitialize()
1140 mux_enabled = enable_aux_mux(sc->kbdc) >= 0;
1142 set_active_aux_mux_port(sc->kbdc, sc->muxport);
1147 mouse_ext_command(sc->kbdc, SYNAPTICS_READ_MODES);
1148 get_mouse_status(sc->kbdc, stat, 0, 3);
1157 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);
1204 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
1209 if (!set_controller_command_byte(sc->kbdc,
1210 kbdc_get_device_mask(sc->kbdc),
1214 disable_aux_dev(sc->kbdc);
1215 restore_controller(sc->kbdc, command_byte);
1236 if (!kbdc_lock(sc->kbdc, TRUE))
1245 empty_both_buffers(sc->kbdc, 10);
1246 c = get_controller_command_byte(sc->kbdc);
1251 if ((c == -1) || !set_controller_command_byte(sc->kbdc,
1252 kbdc_get_device_mask(sc->kbdc),
1257 kbdc_lock(sc->kbdc, FALSE);
1266 disable_aux_dev(sc->kbdc);
1267 empty_aux_buffer(sc->kbdc, 10);
1282 restore_controller(sc->kbdc, c);
1301 if (!set_controller_command_byte(sc->kbdc,
1302 kbdc_get_device_mask(sc->kbdc),
1312 kbdc_lock(sc->kbdc, FALSE);
1356 kbdc_set_device_mask(sc->kbdc, mask); \
1357 kbdc_lock(sc->kbdc, FALSE); \
1386 sc->kbdc = atkbdc_open(device_get_unit(device_get_parent(dev)));
1387 if (sc->kbdc == NULL)
1406 if (!kbdc_lock(sc->kbdc, TRUE)) {
1420 empty_both_buffers(sc->kbdc, 10);
1423 mask = kbdc_get_device_mask(sc->kbdc) & ~KBD_AUX_CONTROL_BITS;
1424 command_byte = get_controller_command_byte(sc->kbdc);
1438 if (!set_controller_command_byte(sc->kbdc,
1446 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1447 restore_controller(sc->kbdc, command_byte);
1451 write_controller_command(sc->kbdc, KBDC_ENABLE_AUX_PORT);
1470 switch ((i = test_aux_port(sc->kbdc))) {
1483 recover_from_error(sc->kbdc);
1486 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1487 restore_controller(sc->kbdc, command_byte);
1508 if (!reset_aux_dev(sc->kbdc)) {
1509 recover_from_error(sc->kbdc);
1510 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1511 restore_controller(sc->kbdc, command_byte);
1516 } else if (!reset_aux_dev(sc->kbdc)) {
1517 recover_from_error(sc->kbdc);
1530 if (!enable_aux_dev(sc->kbdc) || !disable_aux_dev(sc->kbdc)) {
1532 recover_from_error(sc->kbdc);
1533 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1534 restore_controller(sc->kbdc, command_byte);
1541 if (get_mouse_status(sc->kbdc, stat, 0, 3) >= 3) {
1553 sc->hw.hwid = get_aux_id(sc->kbdc);
1555 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1556 restore_controller(sc->kbdc, command_byte);
1583 sc->hw.buttons = get_mouse_buttons(sc->kbdc);
1617 i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);
1623 set_mouse_resolution(sc->kbdc,
1627 set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);
1630 set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate);
1631 set_mouse_scaling(sc->kbdc, 1);
1642 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
1654 if (!set_controller_command_byte(sc->kbdc,
1662 if (ALWAYS_RESTORE_CONTROLLER(sc->kbdc))
1663 restore_controller(sc->kbdc, command_byte);
1669 kbdc_set_device_mask(sc->kbdc, mask | KBD_AUX_CONTROL_BITS);
1670 kbdc_lock(sc->kbdc, FALSE);
2242 if (!kbdc_lock(sc->kbdc, TRUE))
2247 command_byte = get_controller_command_byte(sc->kbdc);
2250 if (command_byte == -1 || !set_controller_command_byte(sc->kbdc,
2251 kbdc_get_device_mask(sc->kbdc),
2255 kbdc_lock(sc->kbdc, FALSE);
2274 kbdc_lock(sc->kbdc, FALSE);
2286 if (!kbdc_lock(sc->kbdc, TRUE))
2291 command_byte = get_controller_command_byte(sc->kbdc);
2293 kbdc_lock(sc->kbdc, FALSE);
2299 if (!set_controller_command_byte(sc->kbdc,
2300 kbdc_get_device_mask(sc->kbdc),
2318 empty_aux_buffer(sc->kbdc, 10);
2322 if (!disable_aux_dev(sc->kbdc)) {
2333 if (get_mouse_status(sc->kbdc, stat, 0, 3) < 3)
2338 if (!set_controller_command_byte(sc->kbdc,
2339 kbdc_get_device_mask(sc->kbdc),
2351 empty_aux_buffer(sc->kbdc, 10);
2354 kbdc_lock(sc->kbdc, FALSE);
2483 if (!kbdc_lock(sc->kbdc, TRUE))
2487 *c = get_controller_command_byte(sc->kbdc);
2488 if ((*c == -1) || !set_controller_command_byte(sc->kbdc,
2489 kbdc_get_device_mask(sc->kbdc),
2494 kbdc_lock(sc->kbdc, FALSE);
2510 empty_aux_buffer(sc->kbdc, 0); /* flush the queue */
2511 read_aux_data_no_wait(sc->kbdc); /* throw away data if any */
2549 empty_aux_buffer(sc->kbdc, 0);
2552 if (!set_controller_command_byte(sc->kbdc,
2553 kbdc_get_device_mask(sc->kbdc),
2563 kbdc_lock(sc->kbdc, FALSE);
2588 if (!write_aux_command(sc->kbdc, buf[i])) {
2759 mode.rate = set_mouse_sampling_rate(sc->kbdc,
2763 set_mouse_resolution(sc->kbdc, mode.resolution);
2764 set_mouse_scaling(sc->kbdc, 1);
2765 get_mouse_status(sc->kbdc, stat, 0, 3);
2810 if ((data->len = get_mouse_status(sc->kbdc, data->buf,
2840 set_mouse_resolution(sc->kbdc, mode.resolution);
2860 sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, mode.rate);
2875 if (!set_mouse_scaling(sc->kbdc, *(int *)addr))
2887 sc->hw.hwid |= get_aux_id(sc->kbdc);
2917 if (sc->watchdog && kbdc_lock(sc->kbdc, TRUE)) {
2920 kbdc_lock(sc->kbdc, FALSE);
2985 if (aux_mux_is_enabled(sc->kbdc))
2990 while((c = read_aux_data_no_wait(sc->kbdc)) != -1) {
3075 disable_aux_dev(sc->kbdc);
3076 enable_aux_dev(sc->kbdc);
5254 static int mouse_id_proc1(KBDC kbdc, int res, int scale, int *status) argument
5256 if (set_mouse_resolution(kbdc, res) != res)
5258 if (set_mouse_scaling(kbdc, scale) &&
5259 set_mouse_scaling(kbdc, scale) &&
5260 set_mouse_scaling(kbdc, scale) &&
5261 (get_mouse_status(kbdc, status, 0, 3) >= 3))
5267 mouse_ext_command(KBDC kbdc, int command) argument
5272 if (set_mouse_resolution(kbdc, c) != c)
5275 if (set_mouse_resolution(kbdc, c) != c)
5278 if (set_mouse_resolution(kbdc, c) != c)
5281 if (set_mouse_resolution(kbdc, c) != c)
5291 KBDC kbdc = sc->kbdc; local
5295 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 2, status))
5314 KBDC kbdc = sc->kbdc; local
5338 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 1, status))
5352 KBDC kbdc = sc->kbdc; local
5365 if (!mouse_id_proc1(kbdc, PSMD_RES_HIGH, 1, status))
5376 KBDC kbdc = sc->kbdc; local
5386 if (set_mouse_sampling_rate(kbdc, 100) != 100)
5388 if (!mouse_id_proc1(kbdc, PSMD_RES_LOW, 2, status))
5400 KBDC kbdc = sc->kbdc; local
5406 id1 = get_aux_id(kbdc);
5407 if (set_mouse_sampling_rate(kbdc, 10) != 10)
5413 id2 = get_aux_id(kbdc);
5417 if (set_mouse_resolution(kbdc, PSMD_RES_LOW) != PSMD_RES_LOW)
5421 if (get_mouse_status(kbdc, status, 0, 3) < 3)
5430 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5437 if (get_mouse_status(kbdc, status, 0, 3) < 3)
5443 disable_aux_dev(kbdc);
5444 empty_aux_buffer(kbdc, 5);
5453 KBDC kbdc = sc->kbdc; local
5462 if (!set_mouse_scaling(kbdc, 1))
5464 if (!mouse_ext_command(kbdc, 0x39) || !mouse_ext_command(kbdc, 0xdb))
5466 if (get_mouse_status(kbdc, data, 1, 3) < 3)
5512 KBDC kbdc = sc->kbdc; local
5527 if (set_mouse_sampling_rate(kbdc, rate1[i]) != rate1[i])
5530 id = get_aux_id(kbdc);
5550 if (set_mouse_sampling_rate(kbdc, rate0[i]) != rate0[i])
5552 get_aux_id(kbdc);
5565 KBDC kbdc = sc->kbdc; local
5572 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5575 id = get_aux_id(kbdc);
5595 KBDC kbdc = sc->kbdc; local
5600 if (set_mouse_sampling_rate(kbdc, rate[i]) != rate[i])
5602 id = get_aux_id(kbdc);
5627 KBDC kbdc = sc->kbdc; local
5640 id = get_aux_id(kbdc);
6244 mouse_ext_command(sc->kbdc, mode_byte);
6247 set_mouse_sampling_rate(sc->kbdc, 20);
6255 mouse_ext_command(sc->kbdc, SYNAPTICS_READ_MODEL_ID);
6256 set_mouse_sampling_rate(sc->kbdc, 0xc8);
6268 KBDC kbdc = sc->kbdc; local
6277 (kbdc->quirks & KBDC_QUIRK_DISABLE_MUX_PROBE) != 0))
6280 version = enable_aux_mux(kbdc);
6286 set_active_aux_mux_port(kbdc, port);
6287 if (enable_aux_dev(kbdc) && disable_aux_dev(kbdc)) {
6303 set_active_aux_mux_port(kbdc, port);
6313 disable_aux_mux(kbdc);
6316 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) {
6321 reset_kbd(kbdc);
6322 if (!enable_aux_dev(kbdc) || !disable_aux_dev(kbdc)) {
6328 empty_both_buffers(kbdc, 10); /* remove stray data if any */
6348 KBDC kbdc = sc->kbdc; local
6361 set_mouse_scaling(kbdc, 1);
6364 if (mouse_ext_command(kbdc, SYNAPTICS_READ_IDENTITY) == 0)
6366 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6385 if (mouse_ext_command(kbdc, SYNAPTICS_READ_MODEL_ID) == 0)
6387 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6425 if (mouse_ext_command(kbdc, SYNAPTICS_READ_CAPABILITIES) == 0)
6427 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6454 if (!set_mouse_scaling(kbdc, 1))
6456 if (mouse_ext_command(kbdc, SYNAPTICS_READ_RESOLUTIONS) == 0)
6458 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6491 if (!set_mouse_scaling(kbdc, 1))
6493 if (mouse_ext_command(kbdc,
6496 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6531 if (!set_mouse_scaling(kbdc, 1))
6533 if (mouse_ext_command(kbdc,
6536 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6553 if (!set_mouse_scaling(kbdc, 1))
6555 if (mouse_ext_command(kbdc,
6558 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6568 if (!set_mouse_scaling(kbdc, 1))
6570 if (mouse_ext_command(kbdc,
6573 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6667 if (mouse_ext_command(kbdc, SYNAPTICS_READ_MODES) == 0)
6669 if (get_mouse_status(kbdc, status, 0, 3) != 3)
6713 set_mouse_scaling(sc->kbdc, 2);
6714 set_mouse_scaling(sc->kbdc, 1);
6731 if (send_aux_command(sc->kbdc, 0xe7) != PSM_ACK) {
6735 if (send_aux_command(sc->kbdc, seq[i]) != PSM_ACK) {
6952 KBDC kbdc = sc->kbdc; local
6965 if (send_aux_command(kbdc, 0xe1) != PSM_ACK ||
6966 read_aux_data(kbdc) != 0x01)
6968 id = read_aux_data(kbdc);
7006 KBDC kbdc = sc->kbdc; local
7009 set_mouse_resolution(kbdc, PSMD_RES_MEDIUM_HIGH); /* set res. 2 */
7010 set_mouse_sampling_rate(kbdc, 100); /* set rate 100 */
7011 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7012 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7013 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7014 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7015 if (get_mouse_status(kbdc, data, 0, 3) < 3) /* get status */
7019 set_mouse_scaling(kbdc, 1); /* set scale 1:1 */
7026 elantech_read_1(KBDC kbdc, int hwversion, int reg, int *val) argument
7034 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7035 res |= send_aux_command(kbdc, readcmd) != PSM_ACK;
7036 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7037 res |= send_aux_command(kbdc, reg) != PSM_ACK;
7038 res |= get_mouse_status(kbdc, resp, 0, 3) != 3;
7047 elantech_write_1(KBDC kbdc, int hwversion, int reg, int val) argument
7053 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7054 res |= send_aux_command(kbdc, writecmd) != PSM_ACK;
7055 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7056 res |= send_aux_command(kbdc, reg) != PSM_ACK;
7058 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7059 res |= send_aux_command(kbdc, writecmd) != PSM_ACK;
7061 res |= send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7062 res |= send_aux_command(kbdc, val) != PSM_ACK;
7063 res |= set_mouse_scaling(kbdc, 1) == 0;
7069 elantech_cmd(KBDC kbdc, int hwversion, int cmd, int *resp) argument
7074 res = set_mouse_scaling(kbdc, 1) == 0;
7075 res |= mouse_ext_command(kbdc, cmd) == 0;
7077 res = send_aux_command(kbdc, ELANTECH_CUSTOM_CMD) != PSM_ACK;
7078 res |= send_aux_command(kbdc, cmd) != PSM_ACK;
7080 res |= get_mouse_status(kbdc, resp, 0, 3) != 3;
7086 elantech_init(KBDC kbdc, elantechhw_t *elanhw) argument
7096 res = elantech_write_1(kbdc, hwversion, 0x10, reg10);
7099 res = elantech_write_1(kbdc, hwversion, 0x11, 0x8A);
7103 res = elantech_write_1(kbdc, hwversion, 0x10, reg10);
7106 res = elantech_write_1(kbdc, hwversion, 0x07, 0x01);
7115 if (elantech_read_1(kbdc, hwversion, 0x10, &val) == 0)
7242 KBDC kbdc = sc->kbdc; local
7246 set_mouse_scaling(kbdc, 1);
7247 set_mouse_scaling(kbdc, 1);
7248 set_mouse_scaling(kbdc, 1);
7249 if (get_mouse_status(kbdc, resp, 0, 3) != 3)
7256 if (elantech_cmd(kbdc, 2, ELANTECH_FW_VERSION, resp))
7287 if (elantech_cmd(kbdc, hwversion, ELANTECH_CAPABILITIES, resp) != 0) {
7299 if (elantech_cmd(kbdc, hwversion, ELANTECH_RESOLUTION, resp)
7317 if (elantech_init(kbdc, &elanhw)) {
7335 if (elantech_cmd(kbdc, hwversion, ELANTECH_FW_ID, resp) != 0) {
7341 !elantech_cmd(kbdc, hwversion, ELANTECH_SAMPLE, resp)) {