Lines Matching refs:priv

253 	struct synaptics_data *priv = psmouse->private;  in synaptics_model_id()  local
258 priv->model_id = (mi[0]<<16) | (mi[1]<<8) | mi[2]; in synaptics_model_id()
264 struct synaptics_data *priv = psmouse->private; in synaptics_more_extended_queries() local
270 priv->ext_cap_10 = (buf[0]<<16) | (buf[1]<<8) | buf[2]; in synaptics_more_extended_queries()
281 struct synaptics_data *priv = psmouse->private; in synaptics_query_modes() local
285 if (SYN_ID_FULL(priv->identity) < 0x705) in synaptics_query_modes()
290 priv->board_id = ((bid[0] & 0xfc) << 6) | bid[1]; in synaptics_query_modes()
303 struct synaptics_data *priv = psmouse->private; in synaptics_firmware_id() local
308 priv->firmware_id = (fwid[0] << 16) | (fwid[1] << 8) | fwid[2]; in synaptics_firmware_id()
318 struct synaptics_data *priv = psmouse->private; in synaptics_capability() local
323 priv->capabilities = (cap[0] << 16) | (cap[1] << 8) | cap[2]; in synaptics_capability()
324 priv->ext_cap = priv->ext_cap_0c = 0; in synaptics_capability()
329 if (SYN_ID_FULL(priv->identity) < 0x705 && in synaptics_capability()
330 SYN_CAP_SUBMODEL_ID(priv->capabilities) != 0x47) { in synaptics_capability()
337 if (!SYN_CAP_EXTENDED(priv->capabilities)) in synaptics_capability()
338 priv->capabilities = 0; in synaptics_capability()
340 if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 1) { in synaptics_capability()
345 priv->ext_cap = (cap[0] << 16) | (cap[1] << 8) | cap[2]; in synaptics_capability()
351 if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) > 8) in synaptics_capability()
352 priv->ext_cap &= 0xff0fff; in synaptics_capability()
356 if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 4) { in synaptics_capability()
361 priv->ext_cap_0c = (cap[0] << 16) | (cap[1] << 8) | cap[2]; in synaptics_capability()
374 struct synaptics_data *priv = psmouse->private; in synaptics_identify() local
379 priv->identity = (id[0]<<16) | (id[1]<<8) | id[2]; in synaptics_identify()
380 if (SYN_ID_IS_SYNAPTICS(priv->identity)) in synaptics_identify()
392 struct synaptics_data *priv = psmouse->private; in synaptics_resolution() local
395 if (SYN_ID_MAJOR(priv->identity) < 4) in synaptics_resolution()
400 priv->x_res = resp[0]; /* x resolution in units/mm */ in synaptics_resolution()
401 priv->y_res = resp[2]; /* y resolution in units/mm */ in synaptics_resolution()
405 if (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 5 && in synaptics_resolution()
406 SYN_CAP_MAX_DIMENSIONS(priv->ext_cap_0c)) { in synaptics_resolution()
411 priv->x_max = (resp[0] << 5) | ((resp[1] & 0x0f) << 1); in synaptics_resolution()
412 priv->y_max = (resp[2] << 5) | ((resp[1] & 0xf0) >> 3); in synaptics_resolution()
415 priv->x_max, priv->y_max); in synaptics_resolution()
419 if (SYN_CAP_MIN_DIMENSIONS(priv->ext_cap_0c) && in synaptics_resolution()
420 (SYN_EXT_CAP_REQUESTS(priv->capabilities) >= 7 || in synaptics_resolution()
426 SYN_ID_FULL(priv->identity) == 0x801)) { in synaptics_resolution()
431 priv->x_min = (resp[0] << 5) | ((resp[1] & 0x0f) << 1); in synaptics_resolution()
432 priv->y_min = (resp[2] << 5) | ((resp[1] & 0xf0) >> 3); in synaptics_resolution()
435 priv->x_min, priv->y_min); in synaptics_resolution()
448 struct synaptics_data *priv = psmouse->private; in synaptics_apply_quirks() local
457 priv->board_id < min_max_pnpid_table[i].board_id.min) in synaptics_apply_quirks()
461 priv->board_id > min_max_pnpid_table[i].board_id.max) in synaptics_apply_quirks()
464 priv->x_min = min_max_pnpid_table[i].x_min; in synaptics_apply_quirks()
465 priv->x_max = min_max_pnpid_table[i].x_max; in synaptics_apply_quirks()
466 priv->y_min = min_max_pnpid_table[i].y_min; in synaptics_apply_quirks()
467 priv->y_max = min_max_pnpid_table[i].y_max; in synaptics_apply_quirks()
470 priv->x_min, priv->x_max, in synaptics_apply_quirks()
471 priv->y_min, priv->y_max); in synaptics_apply_quirks()
499 struct synaptics_data *priv = psmouse->private; in synaptics_set_advanced_gesture_mode() local
501 if (!(SYN_CAP_ADV_GESTURE(priv->ext_cap_0c) || in synaptics_set_advanced_gesture_mode()
502 SYN_CAP_IMAGE_SENSOR(priv->ext_cap_0c))) in synaptics_set_advanced_gesture_mode()
512 priv->capabilities |= BIT(1); in synaptics_set_advanced_gesture_mode()
519 struct synaptics_data *priv = psmouse->private; in synaptics_set_mode() local
521 priv->mode = 0; in synaptics_set_mode()
522 if (priv->absolute_mode) in synaptics_set_mode()
523 priv->mode |= SYN_BIT_ABSOLUTE_MODE; in synaptics_set_mode()
524 if (priv->disable_gesture) in synaptics_set_mode()
525 priv->mode |= SYN_BIT_DISABLE_GESTURE; in synaptics_set_mode()
527 priv->mode |= SYN_BIT_HIGH_RATE; in synaptics_set_mode()
528 if (SYN_CAP_EXTENDED(priv->capabilities)) in synaptics_set_mode()
529 priv->mode |= SYN_BIT_W_MODE; in synaptics_set_mode()
531 if (synaptics_mode_cmd(psmouse, priv->mode)) in synaptics_set_mode()
534 if (priv->absolute_mode && in synaptics_set_mode()
545 struct synaptics_data *priv = psmouse->private; in synaptics_set_rate() local
548 priv->mode |= SYN_BIT_HIGH_RATE; in synaptics_set_rate()
551 priv->mode &= ~SYN_BIT_HIGH_RATE; in synaptics_set_rate()
555 synaptics_mode_cmd(psmouse, priv->mode); in synaptics_set_rate()
576 struct synaptics_data *priv = parent->private; in synaptics_pt_start() local
579 priv->pt_port = serio; in synaptics_pt_start()
588 struct synaptics_data *priv = parent->private; in synaptics_pt_stop() local
591 priv->pt_port = NULL; in synaptics_pt_stop()
604 struct synaptics_data *priv = psmouse->private; in synaptics_pass_pt_packet() local
608 serio_interrupt(ptport, packet[1] | priv->pt_buttons, 0); in synaptics_pass_pt_packet()
620 struct synaptics_data *priv = psmouse->private; in synaptics_pt_activate() local
621 struct psmouse *child = serio_get_drvdata(priv->pt_port); in synaptics_pt_activate()
626 priv->mode |= SYN_BIT_FOUR_BYTE_CLIENT; in synaptics_pt_activate()
628 priv->mode &= ~SYN_BIT_FOUR_BYTE_CLIENT; in synaptics_pt_activate()
630 if (synaptics_mode_cmd(psmouse, priv->mode)) in synaptics_pt_activate()
667 struct synaptics_data *priv, in synaptics_parse_agm() argument
670 struct synaptics_hw_state *agm = &priv->agm; in synaptics_parse_agm()
685 priv->agm_count = buf[1]; in synaptics_parse_agm()
694 struct synaptics_data *priv, in synaptics_parse_ext_buttons() argument
698 (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1; in synaptics_parse_ext_buttons()
706 struct synaptics_data *priv, in synaptics_parse_hw_state() argument
711 if (SYN_MODEL_NEWABS(priv->model_id)) { in synaptics_parse_hw_state()
716 if ((SYN_CAP_ADV_GESTURE(priv->ext_cap_0c) || in synaptics_parse_hw_state()
717 SYN_CAP_IMAGE_SENSOR(priv->ext_cap_0c)) && in synaptics_parse_hw_state()
719 synaptics_parse_agm(buf, priv, hw); in synaptics_parse_hw_state()
734 if (priv->is_forcepad) { in synaptics_parse_hw_state()
746 priv->press = priv->report_press = false; in synaptics_parse_hw_state()
756 if (!priv->press) { in synaptics_parse_hw_state()
757 priv->press_start = jiffies; in synaptics_parse_hw_state()
758 priv->press = true; in synaptics_parse_hw_state()
760 priv->press_start + in synaptics_parse_hw_state()
762 priv->report_press = true; in synaptics_parse_hw_state()
765 priv->press = false; in synaptics_parse_hw_state()
768 hw->left = priv->report_press; in synaptics_parse_hw_state()
770 } else if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) { in synaptics_parse_hw_state()
778 } else if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) { in synaptics_parse_hw_state()
784 if (SYN_CAP_FOUR_BUTTON(priv->capabilities)) { in synaptics_parse_hw_state()
789 if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) > 0 && in synaptics_parse_hw_state()
791 synaptics_parse_ext_buttons(buf, priv, hw); in synaptics_parse_hw_state()
857 struct synaptics_data *priv = psmouse->private; in synaptics_report_ext_buttons() local
858 int ext_bits = (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) + 1) >> 1; in synaptics_report_ext_buttons()
862 if (!SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap)) in synaptics_report_ext_buttons()
866 if ((SYN_ID_FULL(priv->identity) == 0x801 || in synaptics_report_ext_buttons()
867 SYN_ID_FULL(priv->identity) == 0x802) && in synaptics_report_ext_buttons()
871 if (!SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10)) { in synaptics_report_ext_buttons()
886 if (!priv->pt_port) in synaptics_report_ext_buttons()
890 priv->pt_buttons = SYN_CAP_EXT_BUTTON_STICK_L(hw->ext_buttons) | in synaptics_report_ext_buttons()
894 synaptics_pass_pt_packet(psmouse, priv->pt_port, buf); in synaptics_report_ext_buttons()
901 struct synaptics_data *priv = psmouse->private; in synaptics_report_buttons() local
906 if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) in synaptics_report_buttons()
909 if (SYN_CAP_FOUR_BUTTON(priv->capabilities)) { in synaptics_report_buttons()
922 struct synaptics_data *priv = psmouse->private; in synaptics_report_mt_data() local
923 const struct synaptics_hw_state *hw[2] = { sgm, &priv->agm }; in synaptics_report_mt_data()
934 input_mt_assign_slots(dev, slot, pos, nsemi, DMAX * priv->x_res); in synaptics_report_mt_data()
960 struct synaptics_data *priv = psmouse->private; in synaptics_image_sensor_process() local
973 num_fingers = priv->agm_count ? priv->agm_count : 3; in synaptics_image_sensor_process()
987 struct synaptics_data *priv = psmouse->private; in synaptics_process_packet() local
992 if (synaptics_parse_hw_state(psmouse->packet, priv, &hw)) in synaptics_process_packet()
995 if (SYN_CAP_IMAGE_SENSOR(priv->ext_cap_0c)) { in synaptics_process_packet()
1001 priv->scroll += hw.scroll; in synaptics_process_packet()
1003 while (priv->scroll >= 4) { in synaptics_process_packet()
1008 priv->scroll -= 4; in synaptics_process_packet()
1010 while (priv->scroll <= -4) { in synaptics_process_packet()
1015 priv->scroll += 4; in synaptics_process_packet()
1023 if (SYN_CAP_EXTENDED(priv->capabilities)) { in synaptics_process_packet()
1026 if (SYN_CAP_MULTIFINGER(priv->capabilities)) in synaptics_process_packet()
1030 if (SYN_MODEL_PEN(priv->model_id)) in synaptics_process_packet()
1034 if (SYN_CAP_PALMDETECT(priv->capabilities)) in synaptics_process_packet()
1049 if (SYN_CAP_ADV_GESTURE(priv->ext_cap_0c)) in synaptics_process_packet()
1050 synaptics_report_semi_mt_data(dev, &hw, &priv->agm, in synaptics_process_packet()
1066 if (SYN_CAP_PALMDETECT(priv->capabilities)) in synaptics_process_packet()
1070 if (SYN_CAP_MULTIFINGER(priv->capabilities)) { in synaptics_process_packet()
1126 struct synaptics_data *priv = psmouse->private; in synaptics_process_byte() local
1129 if (unlikely(priv->pkt_type == SYN_NEWABS)) in synaptics_process_byte()
1130 priv->pkt_type = synaptics_detect_pkt_type(psmouse); in synaptics_process_byte()
1132 if (SYN_CAP_PASS_THROUGH(priv->capabilities) && in synaptics_process_byte()
1134 if (priv->pt_port) in synaptics_process_byte()
1135 synaptics_pass_pt_packet(psmouse, priv->pt_port, in synaptics_process_byte()
1143 return synaptics_validate_byte(psmouse, psmouse->pktcnt - 1, priv->pkt_type) ? in synaptics_process_byte()
1151 struct synaptics_data *priv, int x_code, in set_abs_position_params() argument
1154 int x_min = priv->x_min ?: XMIN_NOMINAL; in set_abs_position_params()
1155 int x_max = priv->x_max ?: XMAX_NOMINAL; in set_abs_position_params()
1156 int y_min = priv->y_min ?: YMIN_NOMINAL; in set_abs_position_params()
1157 int y_max = priv->y_max ?: YMAX_NOMINAL; in set_abs_position_params()
1158 int fuzz = SYN_CAP_REDUCED_FILTERING(priv->ext_cap_0c) ? in set_abs_position_params()
1163 input_abs_set_res(dev, x_code, priv->x_res); in set_abs_position_params()
1164 input_abs_set_res(dev, y_code, priv->y_res); in set_abs_position_params()
1168 struct synaptics_data *priv) in set_input_params() argument
1179 if (SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) in set_input_params()
1182 if (!priv->absolute_mode) { in set_input_params()
1192 set_abs_position_params(dev, priv, ABS_X, ABS_Y); in set_input_params()
1198 if (SYN_CAP_IMAGE_SENSOR(priv->ext_cap_0c)) { in set_input_params()
1199 set_abs_position_params(dev, priv, ABS_MT_POSITION_X, in set_input_params()
1208 } else if (SYN_CAP_ADV_GESTURE(priv->ext_cap_0c)) { in set_input_params()
1209 set_abs_position_params(dev, priv, ABS_MT_POSITION_X, in set_input_params()
1221 if (SYN_CAP_PALMDETECT(priv->capabilities)) in set_input_params()
1227 if (SYN_CAP_MULTIFINGER(priv->capabilities)) { in set_input_params()
1232 if (SYN_CAP_FOUR_BUTTON(priv->capabilities) || in set_input_params()
1233 SYN_CAP_MIDDLE_BUTTON(priv->capabilities)) { in set_input_params()
1238 if (!SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10)) in set_input_params()
1239 for (i = 0; i < SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap); i++) in set_input_params()
1246 if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) { in set_input_params()
1249 !SYN_CAP_EXT_BUTTONS_STICK(priv->ext_cap_10)) in set_input_params()
1260 struct synaptics_data *priv = psmouse->private; in synaptics_show_disable_gesture() local
1262 return sprintf(buf, "%c\n", priv->disable_gesture ? '1' : '0'); in synaptics_show_disable_gesture()
1269 struct synaptics_data *priv = psmouse->private; in synaptics_set_disable_gesture() local
1280 if (value == priv->disable_gesture) in synaptics_set_disable_gesture()
1283 priv->disable_gesture = value; in synaptics_set_disable_gesture()
1285 priv->mode |= SYN_BIT_DISABLE_GESTURE; in synaptics_set_disable_gesture()
1287 priv->mode &= ~SYN_BIT_DISABLE_GESTURE; in synaptics_set_disable_gesture()
1289 if (synaptics_mode_cmd(psmouse, priv->mode)) in synaptics_set_disable_gesture()
1301 struct synaptics_data *priv = psmouse->private; in synaptics_disconnect() local
1303 if (!priv->absolute_mode && SYN_ID_DISGEST_SUPPORTED(priv->identity)) in synaptics_disconnect()
1308 kfree(priv); in synaptics_disconnect()
1314 struct synaptics_data *priv = psmouse->private; in synaptics_reconnect() local
1315 struct synaptics_data old_priv = *priv; in synaptics_reconnect()
1352 if (old_priv.identity != priv->identity || in synaptics_reconnect()
1353 old_priv.model_id != priv->model_id || in synaptics_reconnect()
1354 old_priv.capabilities != priv->capabilities || in synaptics_reconnect()
1355 old_priv.ext_cap != priv->ext_cap) { in synaptics_reconnect()
1358 old_priv.identity, priv->identity, in synaptics_reconnect()
1359 old_priv.model_id, priv->model_id, in synaptics_reconnect()
1360 old_priv.capabilities, priv->capabilities, in synaptics_reconnect()
1361 old_priv.ext_cap, priv->ext_cap); in synaptics_reconnect()
1444 struct synaptics_data *priv; in __synaptics_init() local
1459 psmouse->private = priv = kzalloc(sizeof(struct synaptics_data), GFP_KERNEL); in __synaptics_init()
1460 if (!priv) in __synaptics_init()
1470 priv->absolute_mode = absolute_mode; in __synaptics_init()
1471 if (SYN_ID_DISGEST_SUPPORTED(priv->identity)) in __synaptics_init()
1472 priv->disable_gesture = true; in __synaptics_init()
1478 priv->is_forcepad = psmouse_matches_pnp_id(psmouse, forcepad_pnp_ids); in __synaptics_init()
1485 priv->pkt_type = SYN_MODEL_NEWABS(priv->model_id) ? SYN_NEWABS : SYN_OLDABS; in __synaptics_init()
1489 SYN_ID_MODEL(priv->identity), in __synaptics_init()
1490 SYN_ID_MAJOR(priv->identity), SYN_ID_MINOR(priv->identity), in __synaptics_init()
1491 priv->model_id, in __synaptics_init()
1492 priv->capabilities, priv->ext_cap, priv->ext_cap_0c, in __synaptics_init()
1493 priv->ext_cap_10, priv->board_id, priv->firmware_id); in __synaptics_init()
1495 set_input_params(psmouse, priv); in __synaptics_init()
1504 psmouse->model = ((priv->model_id & 0x00ff0000) >> 8) | in __synaptics_init()
1505 (priv->model_id & 0x000000ff); in __synaptics_init()
1523 if (SYN_CAP_PASS_THROUGH(priv->capabilities)) in __synaptics_init()
1538 if (!priv->absolute_mode && SYN_ID_DISGEST_SUPPORTED(priv->identity)) { in __synaptics_init()
1552 kfree(priv); in __synaptics_init()