Lines Matching refs:data

64 	unsigned char data[ELO_MAX_LENGTH];  member
69 static void elo_process_data_10(struct elo *elo, unsigned char data) in elo_process_data_10() argument
73 elo->data[elo->idx] = data; in elo_process_data_10()
78 if (data != ELO10_LEAD_BYTE) { in elo_process_data_10()
80 "unsynchronized data: 0x%02x\n", data); in elo_process_data_10()
87 if (data != elo->csum) { in elo_process_data_10()
90 data, elo->csum); in elo_process_data_10()
93 if (elo->data[1] != elo->expected_packet) { in elo_process_data_10()
94 if (elo->data[1] != ELO10_TOUCH_PACKET) in elo_process_data_10()
97 elo->data[1]); in elo_process_data_10()
100 if (likely(elo->data[1] == ELO10_TOUCH_PACKET)) { in elo_process_data_10()
101 input_report_abs(dev, ABS_X, (elo->data[4] << 8) | elo->data[3]); in elo_process_data_10()
102 input_report_abs(dev, ABS_Y, (elo->data[6] << 8) | elo->data[5]); in elo_process_data_10()
103 if (elo->data[2] & ELO10_PRESSURE) in elo_process_data_10()
105 (elo->data[8] << 8) | elo->data[7]); in elo_process_data_10()
106 input_report_key(dev, BTN_TOUCH, elo->data[2] & ELO10_TOUCH); in elo_process_data_10()
108 } else if (elo->data[1] == ELO10_ACK_PACKET) { in elo_process_data_10()
109 if (elo->data[2] == '0') in elo_process_data_10()
113 memcpy(elo->response, &elo->data[1], ELO10_PACKET_LEN); in elo_process_data_10()
118 elo->csum += data; in elo_process_data_10()
121 static void elo_process_data_6(struct elo *elo, unsigned char data) in elo_process_data_6() argument
125 elo->data[elo->idx] = data; in elo_process_data_6()
130 if ((data & 0xc0) != 0xc0) in elo_process_data_6()
135 if ((data & 0xc0) != 0x80) in elo_process_data_6()
140 if ((data & 0xc0) != 0x40) in elo_process_data_6()
145 if (data & 0xc0) { in elo_process_data_6()
150 input_report_abs(dev, ABS_X, ((elo->data[0] & 0x3f) << 6) | (elo->data[1] & 0x3f)); in elo_process_data_6()
151 input_report_abs(dev, ABS_Y, ((elo->data[2] & 0x3f) << 6) | (elo->data[3] & 0x3f)); in elo_process_data_6()
162 if (data) { in elo_process_data_6()
169 if ((data & 0xf0) == 0) { in elo_process_data_6()
170 input_report_abs(dev, ABS_PRESSURE, elo->data[5]); in elo_process_data_6()
171 input_report_key(dev, BTN_TOUCH, !!elo->data[5]); in elo_process_data_6()
179 static void elo_process_data_3(struct elo *elo, unsigned char data) in elo_process_data_3() argument
183 elo->data[elo->idx] = data; in elo_process_data_3()
188 if ((data & 0x7f) != 0x01) in elo_process_data_3()
192 input_report_key(dev, BTN_TOUCH, !(elo->data[1] & 0x80)); in elo_process_data_3()
193 input_report_abs(dev, ABS_X, elo->data[1]); in elo_process_data_3()
194 input_report_abs(dev, ABS_Y, elo->data[2]); in elo_process_data_3()
202 unsigned char data, unsigned int flags) in elo_interrupt() argument
208 elo_process_data_10(elo, data); in elo_interrupt()
213 elo_process_data_6(elo, data); in elo_interrupt()
217 elo_process_data_3(elo, data); in elo_interrupt()