Lines Matching refs:etd
27 if (etd->debug) \
72 struct elantech_data *etd = psmouse->private; in elantech_ps2_command() local
98 struct elantech_data *etd = psmouse->private; in elantech_read_reg() local
108 switch (etd->hw_version) { in elantech_read_reg()
140 else if (etd->hw_version != 4) in elantech_read_reg()
154 struct elantech_data *etd = psmouse->private; in elantech_write_reg() local
163 switch (etd->hw_version) { in elantech_write_reg()
240 struct elantech_data *etd = psmouse->private; in elantech_report_absolute_v1() local
244 if (etd->fw_version < 0x020000) { in elantech_report_absolute_v1()
259 if (etd->jumpy_cursor) { in elantech_report_absolute_v1()
261 etd->single_finger_reports = 0; in elantech_report_absolute_v1()
262 } else if (etd->single_finger_reports < 2) { in elantech_report_absolute_v1()
264 etd->single_finger_reports++; in elantech_report_absolute_v1()
280 etd->y_max - (((packet[1] & 0x03) << 8) | packet[3])); in elantech_report_absolute_v1()
289 if (etd->fw_version < 0x020000 && in elantech_report_absolute_v1()
290 (etd->capabilities[0] & ETP_CAP_HAS_ROCKER)) { in elantech_report_absolute_v1()
327 struct elantech_data *etd = psmouse->private; in elantech_report_absolute_v2() local
355 y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); in elantech_report_absolute_v2()
370 y1 = etd->y_max - in elantech_report_absolute_v2()
378 y2 = etd->y_max - in elantech_report_absolute_v2()
399 if (etd->reports_pressure) { in elantech_report_absolute_v2()
425 struct elantech_data *etd = psmouse->private; in elantech_report_trackpoint() local
426 struct input_dev *tp_dev = etd->tp_dev; in elantech_report_trackpoint()
454 if (etd->debug == 1) in elantech_report_trackpoint()
469 struct elantech_data *etd = psmouse->private; in elantech_report_absolute_v3() local
489 y1 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); in elantech_report_absolute_v3()
498 etd->mt[0].x = ((packet[1] & 0x0f) << 8) | packet[2]; in elantech_report_absolute_v3()
503 etd->mt[0].y = etd->y_max - in elantech_report_absolute_v3()
512 x1 = etd->mt[0].x; in elantech_report_absolute_v3()
513 y1 = etd->mt[0].y; in elantech_report_absolute_v3()
515 y2 = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); in elantech_report_absolute_v3()
533 if (etd->fw_version & 0x001000) { in elantech_report_absolute_v3()
549 struct elantech_data *etd = psmouse->private; in elantech_input_sync_v4() local
553 if (etd->fw_version & 0x001000) { in elantech_input_sync_v4()
587 struct elantech_data *etd = psmouse->private; in process_packet_head_v4() local
595 etd->mt[id].x = ((packet[1] & 0x0f) << 8) | packet[2]; in process_packet_head_v4()
596 etd->mt[id].y = etd->y_max - (((packet[4] & 0x0f) << 8) | packet[5]); in process_packet_head_v4()
603 input_report_abs(dev, ABS_MT_POSITION_X, etd->mt[id].x); in process_packet_head_v4()
604 input_report_abs(dev, ABS_MT_POSITION_Y, etd->mt[id].y); in process_packet_head_v4()
606 input_report_abs(dev, ABS_MT_TOUCH_MAJOR, traces * etd->width); in process_packet_head_v4()
616 struct elantech_data *etd = psmouse->private; in process_packet_motion_v4() local
637 etd->mt[id].x += delta_x1 * weight; in process_packet_motion_v4()
638 etd->mt[id].y -= delta_y1 * weight; in process_packet_motion_v4()
640 input_report_abs(dev, ABS_MT_POSITION_X, etd->mt[id].x); in process_packet_motion_v4()
641 input_report_abs(dev, ABS_MT_POSITION_Y, etd->mt[id].y); in process_packet_motion_v4()
644 etd->mt[sid].x += delta_x2 * weight; in process_packet_motion_v4()
645 etd->mt[sid].y -= delta_y2 * weight; in process_packet_motion_v4()
647 input_report_abs(dev, ABS_MT_POSITION_X, etd->mt[sid].x); in process_packet_motion_v4()
648 input_report_abs(dev, ABS_MT_POSITION_Y, etd->mt[sid].y); in process_packet_motion_v4()
679 struct elantech_data *etd = psmouse->private; in elantech_packet_check_v1() local
684 if (etd->fw_version < 0x020000) { in elantech_packet_check_v1()
696 return etd->parity[packet[1]] == p1 && in elantech_packet_check_v1()
697 etd->parity[packet[2]] == p2 && in elantech_packet_check_v1()
698 etd->parity[packet[3]] == p3; in elantech_packet_check_v1()
715 struct elantech_data *etd = psmouse->private; in elantech_packet_check_v2() local
727 if (etd->reports_pressure) in elantech_packet_check_v2()
747 struct elantech_data *etd = psmouse->private; in elantech_packet_check_v3() local
762 if (etd->crc_enabled) { in elantech_packet_check_v3()
783 struct elantech_data *etd = psmouse->private; in elantech_packet_check_v4() local
789 if (etd->tp_dev && (packet[3] & 0x0f) == 0x06) in elantech_packet_check_v4()
793 ic_version = (etd->fw_version & 0x0f0000) >> 16; in elantech_packet_check_v4()
802 if (etd->crc_enabled) in elantech_packet_check_v4()
804 else if (ic_version == 7 && etd->samples[1] == 0x2A) in elantech_packet_check_v4()
832 struct elantech_data *etd = psmouse->private; in elantech_process_byte() local
838 if (etd->debug > 1) in elantech_process_byte()
841 switch (etd->hw_version) { in elantech_process_byte()
843 if (etd->paritycheck && !elantech_packet_check_v1(psmouse)) in elantech_process_byte()
854 if (etd->paritycheck && !elantech_packet_check_v2(psmouse)) in elantech_process_byte()
910 struct elantech_data *etd = psmouse->private; in elantech_set_rate_restore_reg_07() local
912 etd->original_set_rate(psmouse, rate); in elantech_set_rate_restore_reg_07()
913 if (elantech_write_reg(psmouse, 0x07, etd->reg_07)) in elantech_set_rate_restore_reg_07()
922 struct elantech_data *etd = psmouse->private; in elantech_set_absolute_mode() local
927 switch (etd->hw_version) { in elantech_set_absolute_mode()
929 etd->reg_10 = 0x16; in elantech_set_absolute_mode()
930 etd->reg_11 = 0x8f; in elantech_set_absolute_mode()
931 if (elantech_write_reg(psmouse, 0x10, etd->reg_10) || in elantech_set_absolute_mode()
932 elantech_write_reg(psmouse, 0x11, etd->reg_11)) { in elantech_set_absolute_mode()
939 etd->reg_10 = 0x54; in elantech_set_absolute_mode()
940 etd->reg_11 = 0x88; /* 0x8a */ in elantech_set_absolute_mode()
941 etd->reg_21 = 0x60; /* 0x00 */ in elantech_set_absolute_mode()
942 if (elantech_write_reg(psmouse, 0x10, etd->reg_10) || in elantech_set_absolute_mode()
943 elantech_write_reg(psmouse, 0x11, etd->reg_11) || in elantech_set_absolute_mode()
944 elantech_write_reg(psmouse, 0x21, etd->reg_21)) { in elantech_set_absolute_mode()
950 if (etd->set_hw_resolution) in elantech_set_absolute_mode()
951 etd->reg_10 = 0x0b; in elantech_set_absolute_mode()
953 etd->reg_10 = 0x01; in elantech_set_absolute_mode()
955 if (elantech_write_reg(psmouse, 0x10, etd->reg_10)) in elantech_set_absolute_mode()
961 etd->reg_07 = 0x01; in elantech_set_absolute_mode()
962 if (elantech_write_reg(psmouse, 0x07, etd->reg_07)) in elantech_set_absolute_mode()
987 } else if (etd->hw_version == 1 && in elantech_set_absolute_mode()
1007 struct elantech_data *etd = psmouse->private; in elantech_set_range() local
1011 switch (etd->hw_version) { in elantech_set_range()
1020 if (etd->fw_version == 0x020800 || in elantech_set_range()
1021 etd->fw_version == 0x020b00 || in elantech_set_range()
1022 etd->fw_version == 0x020030) { in elantech_set_range()
1031 i = (etd->fw_version > 0x020800 && in elantech_set_range()
1032 etd->fw_version < 0x020900) ? 1 : 2; in elantech_set_range()
1034 if (etd->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) in elantech_set_range()
1039 if (((etd->fw_version >> 16) == 0x14) && fixed_dpi) { in elantech_set_range()
1040 if (etd->send_cmd(psmouse, ETP_SAMPLE_QUERY, param)) in elantech_set_range()
1043 *x_max = (etd->capabilities[1] - i) * param[1] / 2; in elantech_set_range()
1044 *y_max = (etd->capabilities[2] - i) * param[2] / 2; in elantech_set_range()
1045 } else if (etd->fw_version == 0x040216) { in elantech_set_range()
1048 } else if (etd->fw_version == 0x040219 || etd->fw_version == 0x040215) { in elantech_set_range()
1052 *x_max = (etd->capabilities[1] - i) * 64; in elantech_set_range()
1053 *y_max = (etd->capabilities[2] - i) * 64; in elantech_set_range()
1059 if (etd->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) in elantech_set_range()
1067 if (etd->send_cmd(psmouse, ETP_FW_ID_QUERY, param)) in elantech_set_range()
1072 traces = etd->capabilities[1]; in elantech_set_range()
1146 struct elantech_data *etd = psmouse->private; in elantech_set_buttonpad_prop() local
1148 if (etd->fw_version & 0x001000) { in elantech_set_buttonpad_prop()
1176 struct elantech_data *etd = psmouse->private; in elantech_set_input_params() local
1198 switch (etd->hw_version) { in elantech_set_input_params()
1201 if (etd->fw_version < 0x020000 && in elantech_set_input_params()
1202 (etd->capabilities[0] & ETP_CAP_HAS_ROCKER)) { in elantech_set_input_params()
1215 if (etd->hw_version == 3) in elantech_set_input_params()
1219 if (etd->reports_pressure) { in elantech_set_input_params()
1268 if (etd->hw_version > 1) { in elantech_set_input_params()
1273 etd->y_max = y_max; in elantech_set_input_params()
1274 etd->width = width; in elantech_set_input_params()
1290 struct elantech_data *etd = psmouse->private; in elantech_show_int_attr() local
1292 unsigned char *reg = (unsigned char *) etd + attr->field_offset; in elantech_show_int_attr()
1307 struct elantech_data *etd = psmouse->private; in elantech_set_int_attr() local
1309 unsigned char *reg = (unsigned char *) etd + attr->field_offset; in elantech_set_int_attr()
1318 if (etd->hw_version == 1) { in elantech_set_int_attr()
1468 struct elantech_data *etd = psmouse->private; in elantech_disconnect() local
1470 if (etd->tp_dev) in elantech_disconnect()
1471 input_unregister_device(etd->tp_dev); in elantech_disconnect()
1554 static int elantech_set_properties(struct elantech_data *etd) in elantech_set_properties() argument
1557 int ver = (etd->fw_version & 0x0f0000) >> 16; in elantech_set_properties()
1560 if (etd->fw_version < 0x020030 || etd->fw_version == 0x020600) in elantech_set_properties()
1561 etd->hw_version = 1; in elantech_set_properties()
1566 etd->hw_version = 2; in elantech_set_properties()
1569 etd->hw_version = 3; in elantech_set_properties()
1578 etd->hw_version = 4; in elantech_set_properties()
1586 etd->send_cmd = etd->hw_version >= 3 ? elantech_send_cmd : in elantech_set_properties()
1590 etd->paritycheck = 1; in elantech_set_properties()
1597 etd->jumpy_cursor = in elantech_set_properties()
1598 (etd->fw_version == 0x020022 || etd->fw_version == 0x020600); in elantech_set_properties()
1600 if (etd->hw_version > 1) { in elantech_set_properties()
1602 etd->debug = 1; in elantech_set_properties()
1604 if (etd->fw_version >= 0x020800) in elantech_set_properties()
1605 etd->reports_pressure = true; in elantech_set_properties()
1612 etd->crc_enabled = (etd->fw_version & 0x4000) == 0x4000 || in elantech_set_properties()
1616 etd->set_hw_resolution = !dmi_check_system(no_hw_res_dmi_table); in elantech_set_properties()
1626 struct elantech_data *etd; in elantech_init() local
1632 psmouse->private = etd = kzalloc(sizeof(struct elantech_data), GFP_KERNEL); in elantech_init()
1633 if (!etd) in elantech_init()
1638 etd->parity[0] = 1; in elantech_init()
1640 etd->parity[i] = etd->parity[i & (i - 1)] ^ 1; in elantech_init()
1649 etd->fw_version = (param[0] << 16) | (param[1] << 8) | param[2]; in elantech_init()
1651 if (elantech_set_properties(etd)) { in elantech_init()
1657 etd->hw_version, param[0], param[1], param[2]); in elantech_init()
1659 if (etd->send_cmd(psmouse, ETP_CAPABILITIES_QUERY, in elantech_init()
1660 etd->capabilities)) { in elantech_init()
1666 etd->capabilities[0], etd->capabilities[1], in elantech_init()
1667 etd->capabilities[2]); in elantech_init()
1669 if (etd->hw_version != 1) { in elantech_init()
1670 if (etd->send_cmd(psmouse, ETP_SAMPLE_QUERY, etd->samples)) { in elantech_init()
1676 etd->samples[0], etd->samples[1], etd->samples[2]); in elantech_init()
1685 if (etd->fw_version == 0x381f17) { in elantech_init()
1686 etd->original_set_rate = psmouse->set_rate; in elantech_init()
1705 if ((etd->capabilities[0] & 0x80) == 0x80) { in elantech_init()
1713 etd->tp_dev = tp_dev; in elantech_init()
1714 snprintf(etd->tp_phys, sizeof(etd->tp_phys), "%s/input1", in elantech_init()
1716 tp_dev->phys = etd->tp_phys; in elantech_init()
1733 error = input_register_device(etd->tp_dev); in elantech_init()
1741 psmouse->pktsize = etd->hw_version > 1 ? 6 : 4; in elantech_init()
1751 kfree(etd); in elantech_init()