Lines Matching refs:data

71 	unsigned char *data = wacom->data;  in wacom_penpartner_irq()  local
74 switch (data[0]) { in wacom_penpartner_irq()
76 if (data[5] & 0x80) { in wacom_penpartner_irq()
77 wacom->tool[0] = (data[5] & 0x20) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_penpartner_irq()
78 wacom->id[0] = (data[5] & 0x20) ? ERASER_DEVICE_ID : STYLUS_DEVICE_ID; in wacom_penpartner_irq()
81 input_report_abs(input, ABS_X, get_unaligned_le16(&data[1])); in wacom_penpartner_irq()
82 input_report_abs(input, ABS_Y, get_unaligned_le16(&data[3])); in wacom_penpartner_irq()
83 input_report_abs(input, ABS_PRESSURE, (signed char)data[6] + 127); in wacom_penpartner_irq()
84 input_report_key(input, BTN_TOUCH, ((signed char)data[6] > -127)); in wacom_penpartner_irq()
85 input_report_key(input, BTN_STYLUS, (data[5] & 0x40)); in wacom_penpartner_irq()
97 input_report_abs(input, ABS_X, get_unaligned_le16(&data[1])); in wacom_penpartner_irq()
98 input_report_abs(input, ABS_Y, get_unaligned_le16(&data[3])); in wacom_penpartner_irq()
99 input_report_abs(input, ABS_PRESSURE, (signed char)data[6] + 127); in wacom_penpartner_irq()
100 input_report_key(input, BTN_TOUCH, ((signed char)data[6] > -80) && !(data[5] & 0x20)); in wacom_penpartner_irq()
101 input_report_key(input, BTN_STYLUS, (data[5] & 0x40)); in wacom_penpartner_irq()
106 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_penpartner_irq()
116 unsigned char *data = wacom->data; in wacom_pl_irq() local
120 if (data[0] != WACOM_REPORT_PENABLED) { in wacom_pl_irq()
122 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_pl_irq()
126 prox = data[1] & 0x40; in wacom_pl_irq()
129 if ((data[0] & 0x10) || (data[4] & 0x20)) { in wacom_pl_irq()
143 if (wacom->tool[0] == BTN_TOOL_RUBBER && !(data[4] & 0x20)) { in wacom_pl_irq()
151 pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1)); in wacom_pl_irq()
153 pressure = (pressure << 1) | ((data[4] >> 6) & 1); in wacom_pl_irq()
156 input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14)); in wacom_pl_irq()
157 input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14)); in wacom_pl_irq()
160 input_report_key(input, BTN_TOUCH, data[4] & 0x08); in wacom_pl_irq()
161 input_report_key(input, BTN_STYLUS, data[4] & 0x10); in wacom_pl_irq()
163 input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20)); in wacom_pl_irq()
174 unsigned char *data = wacom->data; in wacom_ptu_irq() local
177 if (data[0] != WACOM_REPORT_PENABLED) { in wacom_ptu_irq()
179 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_ptu_irq()
183 if (data[1] & 0x04) { in wacom_ptu_irq()
184 input_report_key(input, BTN_TOOL_RUBBER, data[1] & 0x20); in wacom_ptu_irq()
185 input_report_key(input, BTN_TOUCH, data[1] & 0x08); in wacom_ptu_irq()
188 input_report_key(input, BTN_TOOL_PEN, data[1] & 0x20); in wacom_ptu_irq()
189 input_report_key(input, BTN_TOUCH, data[1] & 0x01); in wacom_ptu_irq()
193 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_ptu_irq()
194 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_ptu_irq()
195 input_report_abs(input, ABS_PRESSURE, le16_to_cpup((__le16 *)&data[6])); in wacom_ptu_irq()
196 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_ptu_irq()
197 input_report_key(input, BTN_STYLUS2, data[1] & 0x10); in wacom_ptu_irq()
203 unsigned char *data = wacom->data; in wacom_dtu_irq() local
205 int prox = data[1] & 0x20; in wacom_dtu_irq()
208 "%s: received report #%d", __func__, data[0]); in wacom_dtu_irq()
212 wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_dtu_irq()
218 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_dtu_irq()
219 input_report_key(input, BTN_STYLUS2, data[1] & 0x10); in wacom_dtu_irq()
220 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_dtu_irq()
221 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_dtu_irq()
222 input_report_abs(input, ABS_PRESSURE, ((data[7] & 0x01) << 8) | data[6]); in wacom_dtu_irq()
223 input_report_key(input, BTN_TOUCH, data[1] & 0x05); in wacom_dtu_irq()
233 char *data = wacom->data; in wacom_dtus_irq() local
237 if (data[0] != WACOM_REPORT_DTUS && data[0] != WACOM_REPORT_DTUSPAD) { in wacom_dtus_irq()
239 "%s: received unknown report #%d", __func__, data[0]); in wacom_dtus_irq()
241 } else if (data[0] == WACOM_REPORT_DTUSPAD) { in wacom_dtus_irq()
243 input_report_key(input, BTN_0, (data[1] & 0x01)); in wacom_dtus_irq()
244 input_report_key(input, BTN_1, (data[1] & 0x02)); in wacom_dtus_irq()
245 input_report_key(input, BTN_2, (data[1] & 0x04)); in wacom_dtus_irq()
246 input_report_key(input, BTN_3, (data[1] & 0x08)); in wacom_dtus_irq()
248 data[1] & 0x0f ? PAD_DEVICE_ID : 0); in wacom_dtus_irq()
251 prox = data[1] & 0x80; in wacom_dtus_irq()
253 switch ((data[1] >> 3) & 3) { in wacom_dtus_irq()
266 input_report_key(input, BTN_STYLUS, data[1] & 0x20); in wacom_dtus_irq()
267 input_report_key(input, BTN_STYLUS2, data[1] & 0x40); in wacom_dtus_irq()
268 input_report_abs(input, ABS_X, get_unaligned_be16(&data[3])); in wacom_dtus_irq()
269 input_report_abs(input, ABS_Y, get_unaligned_be16(&data[5])); in wacom_dtus_irq()
270 pressure = ((data[1] & 0x03) << 8) | (data[2] & 0xff); in wacom_dtus_irq()
285 unsigned char *data = wacom->data; in wacom_graphire_irq() local
294 if (data[0] != WACOM_REPORT_PENABLED_BT) { in wacom_graphire_irq()
297 data[0]); in wacom_graphire_irq()
300 } else if (data[0] != WACOM_REPORT_PENABLED) { in wacom_graphire_irq()
302 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_graphire_irq()
306 prox = data[1] & 0x80; in wacom_graphire_irq()
309 switch ((data[1] >> 5) & 3) { in wacom_graphire_irq()
322 input_report_key(input, BTN_MIDDLE, data[1] & 0x04); in wacom_graphire_irq()
331 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_graphire_irq()
332 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_graphire_irq()
335 input_report_abs(input, ABS_PRESSURE, data[6] | in wacom_graphire_irq()
336 (((__u16) (data[1] & 0x08)) << 5)); in wacom_graphire_irq()
338 input_report_abs(input, ABS_PRESSURE, data[6] | in wacom_graphire_irq()
339 ((data[7] & 0x03) << 8)); in wacom_graphire_irq()
340 input_report_key(input, BTN_TOUCH, data[1] & 0x01); in wacom_graphire_irq()
341 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_graphire_irq()
342 input_report_key(input, BTN_STYLUS2, data[1] & 0x04); in wacom_graphire_irq()
344 input_report_key(input, BTN_LEFT, data[1] & 0x01); in wacom_graphire_irq()
345 input_report_key(input, BTN_RIGHT, data[1] & 0x02); in wacom_graphire_irq()
348 input_report_abs(input, ABS_DISTANCE, data[6] & 0x3f); in wacom_graphire_irq()
349 rw = (data[7] & 0x04) - (data[7] & 0x03); in wacom_graphire_irq()
352 rw = 44 - (data[6] >> 2); in wacom_graphire_irq()
355 if (((data[1] >> 5) & 3) == 2) { in wacom_graphire_irq()
358 data[1] & 0x04); in wacom_graphire_irq()
359 rw = (data[6] & 0x01) ? -1 : in wacom_graphire_irq()
360 (data[6] & 0x02) ? 1 : 0; in wacom_graphire_irq()
365 input_report_abs(input, ABS_DISTANCE, data[7] & 0x3f); in wacom_graphire_irq()
366 rw = -(signed char)data[6]; in wacom_graphire_irq()
381 prox = data[7] & 0xf8; in wacom_graphire_irq()
384 input_report_key(pad_input, BTN_BACK, (data[7] & 0x40)); in wacom_graphire_irq()
385 input_report_key(pad_input, BTN_FORWARD, (data[7] & 0x80)); in wacom_graphire_irq()
386 rw = ((data[7] & 0x18) >> 3) - ((data[7] & 0x20) >> 3); in wacom_graphire_irq()
396 prox = (data[7] & 0xf8) || data[8]; in wacom_graphire_irq()
399 input_report_key(pad_input, BTN_BACK, (data[7] & 0x08)); in wacom_graphire_irq()
400 input_report_key(pad_input, BTN_LEFT, (data[7] & 0x20)); in wacom_graphire_irq()
401 input_report_key(pad_input, BTN_FORWARD, (data[7] & 0x10)); in wacom_graphire_irq()
402 input_report_key(pad_input, BTN_RIGHT, (data[7] & 0x40)); in wacom_graphire_irq()
403 input_report_abs(pad_input, ABS_WHEEL, (data[8] & 0x7f)); in wacom_graphire_irq()
411 prox = data[7] & 0x03; in wacom_graphire_irq()
414 input_report_key(pad_input, BTN_0, (data[7] & 0x02)); in wacom_graphire_irq()
415 input_report_key(pad_input, BTN_1, (data[7] & 0x01)); in wacom_graphire_irq()
426 rw = (data[7] >> 2 & 0x07); in wacom_graphire_irq()
452 unsigned char *data = wacom->data; in wacom_intuos_inout() local
458 idx = data[1] & 0x01; in wacom_intuos_inout()
461 if ((data[1] & 0xfc) == 0xc0) { in wacom_intuos_inout()
463 wacom->serial[idx] = ((data[3] & 0x0f) << 28) + in wacom_intuos_inout()
464 (data[4] << 20) + (data[5] << 12) + in wacom_intuos_inout()
465 (data[6] << 4) + (data[7] >> 4); in wacom_intuos_inout()
467 wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) | in wacom_intuos_inout()
468 ((data[7] & 0x0f) << 20) | ((data[8] & 0xf0) << 12); in wacom_intuos_inout()
567 (features->type == CINTIQ && !(data[1] & 0x40))) in wacom_intuos_inout()
575 if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) { in wacom_intuos_inout()
583 if ((data[1] & 0xfe) == 0x80) { in wacom_intuos_inout()
636 unsigned char *data = wacom_wac->data; in wacom_remote_irq() local
644 if (data[0] != WACOM_REPORT_REMOTE) { in wacom_remote_irq()
646 "%s: received unknown report #%d", __func__, data[0]); in wacom_remote_irq()
650 serial = data[3] + (data[4] << 8) + (data[5] << 16); in wacom_remote_irq()
653 input_report_key(input, BTN_0, (data[9] & 0x01)); in wacom_remote_irq()
654 input_report_key(input, BTN_1, (data[9] & 0x02)); in wacom_remote_irq()
655 input_report_key(input, BTN_2, (data[9] & 0x04)); in wacom_remote_irq()
656 input_report_key(input, BTN_3, (data[9] & 0x08)); in wacom_remote_irq()
657 input_report_key(input, BTN_4, (data[9] & 0x10)); in wacom_remote_irq()
658 input_report_key(input, BTN_5, (data[9] & 0x20)); in wacom_remote_irq()
659 input_report_key(input, BTN_6, (data[9] & 0x40)); in wacom_remote_irq()
660 input_report_key(input, BTN_7, (data[9] & 0x80)); in wacom_remote_irq()
662 input_report_key(input, BTN_8, (data[10] & 0x01)); in wacom_remote_irq()
663 input_report_key(input, BTN_9, (data[10] & 0x02)); in wacom_remote_irq()
664 input_report_key(input, BTN_A, (data[10] & 0x04)); in wacom_remote_irq()
665 input_report_key(input, BTN_B, (data[10] & 0x08)); in wacom_remote_irq()
666 input_report_key(input, BTN_C, (data[10] & 0x10)); in wacom_remote_irq()
667 input_report_key(input, BTN_X, (data[10] & 0x20)); in wacom_remote_irq()
668 input_report_key(input, BTN_Y, (data[10] & 0x40)); in wacom_remote_irq()
669 input_report_key(input, BTN_Z, (data[10] & 0x80)); in wacom_remote_irq()
671 input_report_key(input, BTN_BASE, (data[11] & 0x01)); in wacom_remote_irq()
672 input_report_key(input, BTN_BASE2, (data[11] & 0x02)); in wacom_remote_irq()
674 if (data[12] & 0x80) in wacom_remote_irq()
675 input_report_abs(input, ABS_WHEEL, (data[12] & 0x7f)); in wacom_remote_irq()
679 bat_percent = data[7] & 0x7f; in wacom_remote_irq()
680 bat_charging = !!(data[7] & 0x80); in wacom_remote_irq()
682 if (data[9] | data[10] | (data[11] & 0x03) | data[12]) in wacom_remote_irq()
690 touch_ring_mode = (data[11] & 0xC0) >> 6; in wacom_remote_irq()
713 unsigned char *data = wacom_wac->data; in wacom_remote_status_irq() local
716 if (data[0] != WACOM_REPORT_DEVICE_LIST) in wacom_remote_status_irq()
721 int serial = (data[j+6] << 16) + (data[j+5] << 8) + data[j+4]; in wacom_remote_status_irq()
722 bool connected = data[j+2]; in wacom_remote_status_irq()
761 unsigned char *data = wacom->data; in wacom_intuos_general() local
766 if ((data[1] & 0xb8) == 0xa0) { in wacom_intuos_general()
767 t = (data[6] << 2) | ((data[7] >> 6) & 3); in wacom_intuos_general()
769 t = (t << 1) | (data[1] & 1); in wacom_intuos_general()
774 (((data[7] << 1) & 0x7e) | (data[8] >> 7)) - 64); in wacom_intuos_general()
775 input_report_abs(input, ABS_TILT_Y, (data[8] & 0x7f) - 64); in wacom_intuos_general()
777 input_report_key(input, BTN_STYLUS, data[1] & 2); in wacom_intuos_general()
778 input_report_key(input, BTN_STYLUS2, data[1] & 4); in wacom_intuos_general()
783 if ((data[1] & 0xbc) == 0xb4) { in wacom_intuos_general()
785 (data[6] << 2) | ((data[7] >> 6) & 3)); in wacom_intuos_general()
787 (((data[7] << 1) & 0x7e) | (data[8] >> 7)) - 64); in wacom_intuos_general()
788 input_report_abs(input, ABS_TILT_Y, (data[8] & 0x7f) - 64); in wacom_intuos_general()
795 unsigned char *data = wacom->data; in wacom_intuos_irq() local
800 if (data[0] != WACOM_REPORT_PENABLED && in wacom_intuos_irq()
801 data[0] != WACOM_REPORT_INTUOSREAD && in wacom_intuos_irq()
802 data[0] != WACOM_REPORT_INTUOSWRITE && in wacom_intuos_irq()
803 data[0] != WACOM_REPORT_INTUOSPAD && in wacom_intuos_irq()
804 data[0] != WACOM_REPORT_INTUOS_PEN && in wacom_intuos_irq()
805 data[0] != WACOM_REPORT_CINTIQ && in wacom_intuos_irq()
806 data[0] != WACOM_REPORT_CINTIQPAD && in wacom_intuos_irq()
807 data[0] != WACOM_REPORT_INTUOS5PAD) { in wacom_intuos_irq()
809 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_intuos_irq()
815 idx = data[1] & 0x01; in wacom_intuos_irq()
818 if (data[0] == WACOM_REPORT_INTUOSPAD || data[0] == WACOM_REPORT_INTUOS5PAD || in wacom_intuos_irq()
819 data[0] == WACOM_REPORT_CINTIQPAD) { in wacom_intuos_irq()
822 input_report_key(input, BTN_0, (data[2] & 0x01)); in wacom_intuos_irq()
823 input_report_key(input, BTN_1, (data[3] & 0x01)); in wacom_intuos_irq()
824 input_report_key(input, BTN_2, (data[3] & 0x02)); in wacom_intuos_irq()
825 input_report_key(input, BTN_3, (data[3] & 0x04)); in wacom_intuos_irq()
826 input_report_key(input, BTN_4, (data[3] & 0x08)); in wacom_intuos_irq()
827 input_report_key(input, BTN_5, (data[3] & 0x10)); in wacom_intuos_irq()
828 input_report_key(input, BTN_6, (data[3] & 0x20)); in wacom_intuos_irq()
829 if (data[1] & 0x80) { in wacom_intuos_irq()
830 input_report_abs(input, ABS_WHEEL, (data[1] & 0x7f)); in wacom_intuos_irq()
836 input_report_key(input, BTN_7, (data[3] & 0x40)); in wacom_intuos_irq()
837 input_report_key(input, BTN_8, (data[3] & 0x80)); in wacom_intuos_irq()
839 if (data[1] | (data[2] & 0x01) | data[3]) { in wacom_intuos_irq()
845 input_report_key(input, BTN_0, (data[6] & 0x01)); in wacom_intuos_irq()
846 input_report_key(input, BTN_1, (data[6] & 0x02)); in wacom_intuos_irq()
847 input_report_key(input, BTN_2, (data[6] & 0x04)); in wacom_intuos_irq()
848 input_report_key(input, BTN_3, (data[6] & 0x08)); in wacom_intuos_irq()
849 input_report_key(input, BTN_4, (data[6] & 0x10)); in wacom_intuos_irq()
850 input_report_key(input, BTN_5, (data[6] & 0x20)); in wacom_intuos_irq()
851 if (data[6] & 0x3f) { in wacom_intuos_irq()
857 input_report_key(input, BTN_0, (data[3] & 0x01)); in wacom_intuos_irq()
858 input_report_key(input, BTN_1, (data[4] & 0x01)); in wacom_intuos_irq()
859 input_report_key(input, BTN_2, (data[4] & 0x02)); in wacom_intuos_irq()
860 input_report_key(input, BTN_3, (data[4] & 0x04)); in wacom_intuos_irq()
861 input_report_key(input, BTN_4, (data[4] & 0x08)); in wacom_intuos_irq()
862 input_report_key(input, BTN_5, (data[4] & 0x10)); in wacom_intuos_irq()
863 input_report_key(input, BTN_6, (data[4] & 0x20)); in wacom_intuos_irq()
864 input_report_key(input, BTN_7, (data[4] & 0x40)); in wacom_intuos_irq()
865 input_report_key(input, BTN_8, (data[4] & 0x80)); in wacom_intuos_irq()
866 if ((data[3] & 0x01) | data[4]) { in wacom_intuos_irq()
872 input_report_key(input, BTN_0, (data[6] & 0x01)); in wacom_intuos_irq()
873 input_report_key(input, BTN_1, (data[6] & 0x02)); in wacom_intuos_irq()
874 input_report_key(input, BTN_2, (data[6] & 0x04)); in wacom_intuos_irq()
875 input_report_key(input, BTN_3, (data[6] & 0x08)); in wacom_intuos_irq()
876 input_report_key(input, BTN_4, (data[6] & 0x10)); in wacom_intuos_irq()
877 input_report_key(input, BTN_5, (data[6] & 0x20)); in wacom_intuos_irq()
878 input_report_key(input, BTN_6, (data[6] & 0x40)); in wacom_intuos_irq()
879 input_report_key(input, BTN_7, (data[6] & 0x80)); in wacom_intuos_irq()
880 input_report_key(input, BTN_8, (data[8] & 0x01)); in wacom_intuos_irq()
881 input_report_key(input, BTN_9, (data[8] & 0x02)); in wacom_intuos_irq()
882 input_report_key(input, BTN_A, (data[8] & 0x04)); in wacom_intuos_irq()
883 input_report_key(input, BTN_B, (data[8] & 0x08)); in wacom_intuos_irq()
884 input_report_key(input, BTN_C, (data[8] & 0x10)); in wacom_intuos_irq()
885 input_report_key(input, BTN_X, (data[8] & 0x20)); in wacom_intuos_irq()
886 input_report_key(input, BTN_Y, (data[8] & 0x40)); in wacom_intuos_irq()
887 input_report_key(input, BTN_Z, (data[8] & 0x80)); in wacom_intuos_irq()
896 input_report_key(input, KEY_PROG1, data[4] & 0x07); in wacom_intuos_irq()
897 input_report_key(input, KEY_PROG2, data[4] & 0xE0); in wacom_intuos_irq()
898 input_report_key(input, KEY_PROG3, data[3] & 0x1C); in wacom_intuos_irq()
900 if (data[1] & 0x80) { in wacom_intuos_irq()
901 input_report_abs(input, ABS_WHEEL, (data[1] & 0x7f)); in wacom_intuos_irq()
907 if (data[2] & 0x80) { in wacom_intuos_irq()
908 input_report_abs(input, ABS_THROTTLE, (data[2] & 0x7f)); in wacom_intuos_irq()
914 if (data[1] | data[2] | (data[3] & 0x1f) | data[4] | data[6] | data[8]) { in wacom_intuos_irq()
920 input_report_key(input, KEY_PROG1, data[2] & 0x01); in wacom_intuos_irq()
921 input_report_key(input, KEY_PROG2, data[2] & 0x02); in wacom_intuos_irq()
922 input_report_key(input, KEY_PROG3, data[2] & 0x04); in wacom_intuos_irq()
924 input_report_abs(input, ABS_X, be16_to_cpup((__be16 *)&data[4])); in wacom_intuos_irq()
925 input_report_abs(input, ABS_Y, be16_to_cpup((__be16 *)&data[6])); in wacom_intuos_irq()
926 input_report_abs(input, ABS_Z, be16_to_cpup((__be16 *)&data[8])); in wacom_intuos_irq()
927 if ((data[2] & 0x07) | data[4] | data[5] | data[6] | data[7] | data[8] | data[9]) { in wacom_intuos_irq()
938 input_report_key(input, BTN_1, (data[4] & 0x01)); in wacom_intuos_irq()
939 input_report_key(input, BTN_2, (data[4] & 0x02)); in wacom_intuos_irq()
940 input_report_key(input, BTN_3, (data[4] & 0x04)); in wacom_intuos_irq()
941 input_report_key(input, BTN_4, (data[4] & 0x08)); in wacom_intuos_irq()
943 input_report_key(input, BTN_5, (data[4] & 0x10)); /* Right */ in wacom_intuos_irq()
944 input_report_key(input, BTN_6, (data[4] & 0x20)); /* Up */ in wacom_intuos_irq()
945 input_report_key(input, BTN_7, (data[4] & 0x40)); /* Left */ in wacom_intuos_irq()
946 input_report_key(input, BTN_8, (data[4] & 0x80)); /* Down */ in wacom_intuos_irq()
947 input_report_key(input, BTN_0, (data[3] & 0x01)); /* Center */ in wacom_intuos_irq()
949 if (data[4] | (data[3] & 0x01)) { in wacom_intuos_irq()
956 input_report_key(input, BTN_1, (data[1] & 0x02)); in wacom_intuos_irq()
957 input_report_key(input, BTN_2, (data[2] & 0x01)); in wacom_intuos_irq()
958 input_report_key(input, BTN_3, (data[2] & 0x02)); in wacom_intuos_irq()
959 input_report_key(input, BTN_4, (data[2] & 0x04)); in wacom_intuos_irq()
960 input_report_key(input, BTN_5, (data[2] & 0x08)); in wacom_intuos_irq()
961 input_report_key(input, BTN_6, (data[1] & 0x04)); in wacom_intuos_irq()
963 input_report_key(input, BTN_7, (data[2] & 0x10)); /* Right */ in wacom_intuos_irq()
964 input_report_key(input, BTN_8, (data[2] & 0x20)); /* Up */ in wacom_intuos_irq()
965 input_report_key(input, BTN_9, (data[2] & 0x40)); /* Left */ in wacom_intuos_irq()
966 input_report_key(input, BTN_A, (data[2] & 0x80)); /* Down */ in wacom_intuos_irq()
967 input_report_key(input, BTN_0, (data[1] & 0x01)); /* Center */ in wacom_intuos_irq()
969 if (data[2] | (data[1] & 0x07)) { in wacom_intuos_irq()
979 input_report_key(input, BTN_0, (data[3] & 0x01)); in wacom_intuos_irq()
987 input_report_key(input, BTN_1 + i, data[4] & (1 << i)); in wacom_intuos_irq()
989 if (data[2] & 0x80) { in wacom_intuos_irq()
990 input_report_abs(input, ABS_WHEEL, (data[2] & 0x7f)); in wacom_intuos_irq()
996 if (data[2] | (data[3] & 0x01) | data[4] | data[5]) { in wacom_intuos_irq()
1003 input_report_key(input, BTN_0, (data[5] & 0x01)); in wacom_intuos_irq()
1004 input_report_key(input, BTN_1, (data[6] & 0x01)); in wacom_intuos_irq()
1005 input_report_key(input, BTN_2, (data[6] & 0x02)); in wacom_intuos_irq()
1006 input_report_key(input, BTN_3, (data[6] & 0x04)); in wacom_intuos_irq()
1007 input_report_key(input, BTN_4, (data[6] & 0x08)); in wacom_intuos_irq()
1008 input_report_key(input, BTN_5, (data[6] & 0x10)); in wacom_intuos_irq()
1009 input_report_key(input, BTN_6, (data[6] & 0x20)); in wacom_intuos_irq()
1010 input_report_key(input, BTN_7, (data[6] & 0x40)); in wacom_intuos_irq()
1011 input_report_key(input, BTN_8, (data[6] & 0x80)); in wacom_intuos_irq()
1012 input_report_key(input, BTN_9, (data[7] & 0x01)); in wacom_intuos_irq()
1013 input_report_key(input, BTN_A, (data[8] & 0x01)); in wacom_intuos_irq()
1014 input_report_key(input, BTN_B, (data[8] & 0x02)); in wacom_intuos_irq()
1015 input_report_key(input, BTN_C, (data[8] & 0x04)); in wacom_intuos_irq()
1016 input_report_key(input, BTN_X, (data[8] & 0x08)); in wacom_intuos_irq()
1017 input_report_key(input, BTN_Y, (data[8] & 0x10)); in wacom_intuos_irq()
1018 input_report_key(input, BTN_Z, (data[8] & 0x20)); in wacom_intuos_irq()
1019 input_report_key(input, BTN_BASE, (data[8] & 0x40)); in wacom_intuos_irq()
1020 input_report_key(input, BTN_BASE2, (data[8] & 0x80)); in wacom_intuos_irq()
1023 input_report_key(input, KEY_PROG1, data[9] & 0x01); in wacom_intuos_irq()
1024 input_report_key(input, KEY_PROG2, data[9] & 0x02); in wacom_intuos_irq()
1025 input_report_key(input, KEY_PROG3, data[9] & 0x04); in wacom_intuos_irq()
1028 input_report_key(input, BTN_0, (data[5] & 0x01)); in wacom_intuos_irq()
1029 input_report_key(input, BTN_1, (data[5] & 0x02)); in wacom_intuos_irq()
1030 input_report_key(input, BTN_2, (data[5] & 0x04)); in wacom_intuos_irq()
1031 input_report_key(input, BTN_3, (data[5] & 0x08)); in wacom_intuos_irq()
1032 input_report_key(input, BTN_4, (data[6] & 0x01)); in wacom_intuos_irq()
1033 input_report_key(input, BTN_5, (data[6] & 0x02)); in wacom_intuos_irq()
1034 input_report_key(input, BTN_6, (data[6] & 0x04)); in wacom_intuos_irq()
1035 input_report_key(input, BTN_7, (data[6] & 0x08)); in wacom_intuos_irq()
1036 input_report_key(input, BTN_8, (data[5] & 0x10)); in wacom_intuos_irq()
1037 input_report_key(input, BTN_9, (data[6] & 0x10)); in wacom_intuos_irq()
1039 input_report_abs(input, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]); in wacom_intuos_irq()
1040 input_report_abs(input, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]); in wacom_intuos_irq()
1042 if ((data[5] & 0x1f) | data[6] | (data[1] & 0x1f) | in wacom_intuos_irq()
1043 data[2] | (data[3] & 0x1f) | data[4] | data[8] | in wacom_intuos_irq()
1044 (data[7] & 0x01)) { in wacom_intuos_irq()
1059 input_report_abs(input, ABS_X, (data[2] << 9) | (data[3] << 1) | ((data[9] >> 1) & 1)); in wacom_intuos_irq()
1060 input_report_abs(input, ABS_Y, (data[4] << 9) | (data[5] << 1) | (data[9] & 1)); in wacom_intuos_irq()
1061 input_report_abs(input, ABS_DISTANCE, ((data[9] >> 2) & 0x3f)); in wacom_intuos_irq()
1063 input_report_abs(input, ABS_X, be16_to_cpup((__be16 *)&data[2])); in wacom_intuos_irq()
1064 input_report_abs(input, ABS_Y, be16_to_cpup((__be16 *)&data[4])); in wacom_intuos_irq()
1065 input_report_abs(input, ABS_DISTANCE, ((data[9] >> 3) & 0x1f)); in wacom_intuos_irq()
1072 if ((data[1] & 0xbc) == 0xa8 || (data[1] & 0xbe) == 0xb0 || (data[1] & 0xbc) == 0xac) { in wacom_intuos_irq()
1074 if (data[1] & 0x02) { in wacom_intuos_irq()
1078 t = (data[6] << 3) | ((data[7] >> 5) & 7); in wacom_intuos_irq()
1079 t = (data[7] & 0x20) ? ((t > 900) ? ((t-1) / 2 - 1350) : in wacom_intuos_irq()
1084 t = (data[6] << 3) | ((data[7] >> 5) & 7); in wacom_intuos_irq()
1085 input_report_abs(input, ABS_RZ, (data[7] & 0x20) ? in wacom_intuos_irq()
1089 } else if (!(data[1] & 0x10) && features->type < INTUOS3S) { in wacom_intuos_irq()
1091 input_report_key(input, BTN_LEFT, data[8] & 0x01); in wacom_intuos_irq()
1092 input_report_key(input, BTN_MIDDLE, data[8] & 0x02); in wacom_intuos_irq()
1093 input_report_key(input, BTN_RIGHT, data[8] & 0x04); in wacom_intuos_irq()
1095 input_report_key(input, BTN_SIDE, data[8] & 0x20); in wacom_intuos_irq()
1096 input_report_key(input, BTN_EXTRA, data[8] & 0x10); in wacom_intuos_irq()
1097 t = (data[6] << 2) | ((data[7] >> 6) & 3); in wacom_intuos_irq()
1098 input_report_abs(input, ABS_THROTTLE, (data[8] & 0x08) ? -t : t); in wacom_intuos_irq()
1103 input_report_key(input, BTN_LEFT, data[6] & 0x01); in wacom_intuos_irq()
1104 input_report_key(input, BTN_MIDDLE, data[6] & 0x02); in wacom_intuos_irq()
1105 input_report_key(input, BTN_RIGHT, data[6] & 0x04); in wacom_intuos_irq()
1106 input_report_rel(input, REL_WHEEL, ((data[7] & 0x80) >> 7) in wacom_intuos_irq()
1107 - ((data[7] & 0x40) >> 6)); in wacom_intuos_irq()
1108 input_report_key(input, BTN_SIDE, data[6] & 0x08); in wacom_intuos_irq()
1109 input_report_key(input, BTN_EXTRA, data[6] & 0x10); in wacom_intuos_irq()
1112 (((data[7] << 1) & 0x7e) | (data[8] >> 7)) - 64); in wacom_intuos_irq()
1113 input_report_abs(input, ABS_TILT_Y, (data[8] & 0x7f) - 64); in wacom_intuos_irq()
1116 input_report_key(input, BTN_LEFT, data[8] & 0x04); in wacom_intuos_irq()
1117 input_report_key(input, BTN_MIDDLE, data[8] & 0x08); in wacom_intuos_irq()
1118 input_report_key(input, BTN_RIGHT, data[8] & 0x10); in wacom_intuos_irq()
1119 input_report_rel(input, REL_WHEEL, (data[8] & 0x01) in wacom_intuos_irq()
1120 - ((data[8] & 0x02) >> 1)); in wacom_intuos_irq()
1124 input_report_key(input, BTN_SIDE, data[8] & 0x40); in wacom_intuos_irq()
1125 input_report_key(input, BTN_EXTRA, data[8] & 0x20); in wacom_intuos_irq()
1133 input_report_key(input, BTN_LEFT, data[8] & 0x01); in wacom_intuos_irq()
1134 input_report_key(input, BTN_MIDDLE, data[8] & 0x02); in wacom_intuos_irq()
1135 input_report_key(input, BTN_RIGHT, data[8] & 0x04); in wacom_intuos_irq()
1136 input_report_key(input, BTN_SIDE, data[8] & 0x10); in wacom_intuos_irq()
1137 input_report_key(input, BTN_EXTRA, data[8] & 0x08); in wacom_intuos_irq()
1157 unsigned char *data) in wacom_intuos_bt_process_data() argument
1159 memcpy(wacom->data, data, 10); in wacom_intuos_bt_process_data()
1169 unsigned char data[WACOM_PKGLEN_MAX]; in wacom_intuos_bt_irq() local
1173 memcpy(data, wacom->data, len); in wacom_intuos_bt_irq()
1175 switch (data[0]) { in wacom_intuos_bt_irq()
1177 wacom_intuos_bt_process_data(wacom, data + i); in wacom_intuos_bt_irq()
1181 wacom_intuos_bt_process_data(wacom, data + i); in wacom_intuos_bt_irq()
1183 wacom_intuos_bt_process_data(wacom, data + i); in wacom_intuos_bt_irq()
1185 power_raw = data[i]; in wacom_intuos_bt_irq()
1196 data[0], data[1], len); in wacom_intuos_bt_irq()
1229 unsigned char *data = wacom->data; in wacom_24hdt_irq() local
1231 int current_num_contacts = data[61]; in wacom_24hdt_irq()
1238 current_num_contacts = data[63]; in wacom_24hdt_irq()
1255 bool touch = (data[offset] & 0x1) && !wacom->shared->stylus_in_proximity; in wacom_24hdt_irq()
1256 int slot = input_mt_get_slot_by_key(input, data[offset + 1]); in wacom_24hdt_irq()
1264 int t_x = get_unaligned_le16(&data[offset + 2]); in wacom_24hdt_irq()
1265 int t_y = get_unaligned_le16(&data[offset + 4 + y_offset]); in wacom_24hdt_irq()
1271 int c_x = get_unaligned_le16(&data[offset + 4]); in wacom_24hdt_irq()
1272 int c_y = get_unaligned_le16(&data[offset + 8]); in wacom_24hdt_irq()
1273 int w = get_unaligned_le16(&data[offset + 10]); in wacom_24hdt_irq()
1274 int h = get_unaligned_le16(&data[offset + 12]); in wacom_24hdt_irq()
1297 unsigned char *data = wacom->data; in wacom_mt_touch() local
1299 int current_num_contacts = data[2]; in wacom_mt_touch()
1319 bool touch = (data[offset] & 0x1) && !wacom->shared->stylus_in_proximity; in wacom_mt_touch()
1320 int id = get_unaligned_le16(&data[offset + 1]); in wacom_mt_touch()
1329 int x = get_unaligned_le16(&data[offset + x_offset + 7]); in wacom_mt_touch()
1330 int y = get_unaligned_le16(&data[offset + x_offset + 9]); in wacom_mt_touch()
1348 unsigned char *data = wacom->data; in wacom_tpc_mt_touch() local
1352 int p = data[1] & (1 << i); in wacom_tpc_mt_touch()
1358 int x = le16_to_cpup((__le16 *)&data[i * 2 + 2]) & 0x7fff; in wacom_tpc_mt_touch()
1359 int y = le16_to_cpup((__le16 *)&data[i * 2 + 6]) & 0x7fff; in wacom_tpc_mt_touch()
1375 unsigned char *data = wacom->data; in wacom_tpc_single_touch() local
1384 prox = prox && (data[0] & 0x01); in wacom_tpc_single_touch()
1385 x = get_unaligned_le16(&data[1]); in wacom_tpc_single_touch()
1386 y = get_unaligned_le16(&data[3]); in wacom_tpc_single_touch()
1388 prox = prox && (data[2] & 0x01); in wacom_tpc_single_touch()
1389 x = get_unaligned_le16(&data[3]); in wacom_tpc_single_touch()
1390 y = get_unaligned_le16(&data[5]); in wacom_tpc_single_touch()
1392 prox = prox && (data[1] & 0x01); in wacom_tpc_single_touch()
1393 x = le16_to_cpup((__le16 *)&data[2]); in wacom_tpc_single_touch()
1394 y = le16_to_cpup((__le16 *)&data[4]); in wacom_tpc_single_touch()
1411 unsigned char *data = wacom->data; in wacom_tpc_pen() local
1413 bool prox = data[1] & 0x20; in wacom_tpc_pen()
1417 wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_tpc_pen()
1424 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_tpc_pen()
1425 input_report_key(input, BTN_STYLUS2, data[1] & 0x10); in wacom_tpc_pen()
1426 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_tpc_pen()
1427 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_tpc_pen()
1428 input_report_abs(input, ABS_PRESSURE, ((data[7] & 0x07) << 8) | data[6]); in wacom_tpc_pen()
1429 input_report_key(input, BTN_TOUCH, data[1] & 0x05); in wacom_tpc_pen()
1439 unsigned char *data = wacom->data; in wacom_tpc_irq() local
1443 "%s: received report #%d\n", __func__, data[0]); in wacom_tpc_irq()
1446 "%s: received report #%d\n", __func__, data[0]); in wacom_tpc_irq()
1459 switch (data[0]) { in wacom_tpc_irq()
1886 unsigned char *data = wacom->data; in wacom_bpt_touch() local
1889 if (data[0] != 0x02) in wacom_bpt_touch()
1893 int offset = (data[1] & 0x80) ? (8 * i) : (9 * i); in wacom_bpt_touch()
1894 bool touch = data[offset + 3] & 0x80; in wacom_bpt_touch()
1907 int x = get_unaligned_be16(&data[offset + 3]) & 0x7ff; in wacom_bpt_touch()
1908 int y = get_unaligned_be16(&data[offset + 5]) & 0x7ff; in wacom_bpt_touch()
1920 input_report_key(pad_input, BTN_LEFT, (data[1] & 0x08) != 0); in wacom_bpt_touch()
1921 input_report_key(pad_input, BTN_FORWARD, (data[1] & 0x04) != 0); in wacom_bpt_touch()
1922 input_report_key(pad_input, BTN_BACK, (data[1] & 0x02) != 0); in wacom_bpt_touch()
1923 input_report_key(pad_input, BTN_RIGHT, (data[1] & 0x01) != 0); in wacom_bpt_touch()
1929 static void wacom_bpt3_touch_msg(struct wacom_wac *wacom, unsigned char *data) in wacom_bpt3_touch_msg() argument
1933 bool touch = data[1] & 0x80; in wacom_bpt3_touch_msg()
1934 int slot = input_mt_get_slot_by_key(input, data[0]); in wacom_bpt3_touch_msg()
1945 int x = (data[2] << 4) | (data[4] >> 4); in wacom_bpt3_touch_msg()
1946 int y = (data[3] << 4) | (data[4] & 0x0f); in wacom_bpt3_touch_msg()
1950 width = data[5] * 100; in wacom_bpt3_touch_msg()
1951 height = data[6] * 100; in wacom_bpt3_touch_msg()
1958 int a = data[5]; in wacom_bpt3_touch_msg()
1972 static void wacom_bpt3_button_msg(struct wacom_wac *wacom, unsigned char *data) in wacom_bpt3_button_msg() argument
1978 input_report_key(input, BTN_LEFT, (data[1] & 0x02) != 0); in wacom_bpt3_button_msg()
1979 input_report_key(input, BTN_BACK, (data[1] & 0x08) != 0); in wacom_bpt3_button_msg()
1981 input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0); in wacom_bpt3_button_msg()
1982 input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0); in wacom_bpt3_button_msg()
1984 input_report_key(input, BTN_FORWARD, (data[1] & 0x04) != 0); in wacom_bpt3_button_msg()
1985 input_report_key(input, BTN_RIGHT, (data[1] & 0x01) != 0); in wacom_bpt3_button_msg()
1990 unsigned char *data = wacom->data; in wacom_bpt3_touch() local
1991 int count = data[1] & 0x07; in wacom_bpt3_touch()
1994 if (data[0] != 0x02) in wacom_bpt3_touch()
2000 int msg_id = data[offset]; in wacom_bpt3_touch()
2003 wacom_bpt3_touch_msg(wacom, data + offset); in wacom_bpt3_touch()
2006 wacom_bpt3_button_msg(wacom, data + offset); in wacom_bpt3_touch()
2023 unsigned char *data = wacom->data; in wacom_bpt_pen() local
2026 if (data[0] != WACOM_REPORT_PENABLED) in wacom_bpt_pen()
2029 prox = (data[1] & 0x20) == 0x20; in wacom_bpt_pen()
2042 if (data[1] & 0x08) { in wacom_bpt_pen()
2056 x = le16_to_cpup((__le16 *)&data[2]); in wacom_bpt_pen()
2057 y = le16_to_cpup((__le16 *)&data[4]); in wacom_bpt_pen()
2058 p = le16_to_cpup((__le16 *)&data[6]); in wacom_bpt_pen()
2065 if (data[8] <= features->distance_max) in wacom_bpt_pen()
2066 d = features->distance_max - data[8]; in wacom_bpt_pen()
2068 pen = data[1] & 0x01; in wacom_bpt_pen()
2069 btn1 = data[1] & 0x02; in wacom_bpt_pen()
2070 btn2 = data[1] & 0x04; in wacom_bpt_pen()
2108 unsigned char *data) in wacom_bamboo_pad_pen_event() argument
2119 prefix = data[0]; in wacom_bamboo_pad_pen_event()
2120 data[0] = WACOM_REPORT_BPAD_PEN; in wacom_bamboo_pad_pen_event()
2127 hid_input_report(wacom->shared->pen, HID_INPUT_REPORT, data, in wacom_bamboo_pad_pen_event()
2130 data[0] = prefix; in wacom_bamboo_pad_pen_event()
2134 unsigned char *data) in wacom_bamboo_pad_touch_event() argument
2142 prefix = data[0]; in wacom_bamboo_pad_touch_event()
2154 finger_data = data + 1 + id * 3; in wacom_bamboo_pad_touch_event()
2176 unsigned char *data = wacom->data; in wacom_bamboo_pad_irq() local
2180 (data[0] != WACOM_REPORT_BPAD_TOUCH)) in wacom_bamboo_pad_irq()
2183 if (data[1] & 0x01) in wacom_bamboo_pad_irq()
2184 wacom_bamboo_pad_pen_event(wacom, &data[1]); in wacom_bamboo_pad_irq()
2186 if (data[1] & 0x02) in wacom_bamboo_pad_irq()
2187 return wacom_bamboo_pad_touch_event(wacom, &data[9]); in wacom_bamboo_pad_irq()
2194 unsigned char *data = wacom->data; in wacom_wireless_irq() local
2197 if (len != WACOM_PKGLEN_WIRELESS || data[0] != WACOM_REPORT_WL) in wacom_wireless_irq()
2200 connected = data[1] & 0x01; in wacom_wireless_irq()
2209 SW_MUTE_DEVICE, data[5] & 0x40); in wacom_wireless_irq()
2213 pid = get_unaligned_be16(&data[6]); in wacom_wireless_irq()
2214 battery = (data[5] & 0x3f) * 100 / 31; in wacom_wireless_irq()
2215 charging = !!(data[5] & 0x80); in wacom_wireless_irq()
2238 unsigned char *data = wacom_wac->data; in wacom_status_irq() local
2240 if (data[0] != WACOM_REPORT_USB) in wacom_status_irq()
2248 SW_MUTE_DEVICE, data[8] & 0x40); in wacom_status_irq()
2252 if (data[9] & 0x02) { /* wireless module is attached */ in wacom_status_irq()
2253 int battery = (data[8] & 0x3f) * 100 / 31; in wacom_status_irq()
2254 bool charging = !!(data[8] & 0x80); in wacom_status_irq()
2346 else if (wacom_wac->data[0] == WACOM_REPORT_USB) in wacom_wac_irq()
2366 if (wacom_wac->data[0] == WACOM_REPORT_USB) in wacom_wac_irq()
2381 if (wacom_wac->data[0] == WACOM_REPORT_DEVICE_LIST) in wacom_wac_irq()