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()
130 pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1)); in wacom_pl_irq()
132 pressure = (pressure << 1) | ((data[4] >> 6) & 1); in wacom_pl_irq()
143 if (data[1] & 0x10) in wacom_pl_irq()
147 wacom->tool[1] = (data[4] & 0x20) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_pl_irq()
150 if (wacom->tool[1] == BTN_TOOL_RUBBER && !(data[4] & 0x20)) { in wacom_pl_irq()
165 input_report_abs(input, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14)); in wacom_pl_irq()
166 input_report_abs(input, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14)); in wacom_pl_irq()
169 input_report_key(input, BTN_TOUCH, data[4] & 0x08); in wacom_pl_irq()
170 input_report_key(input, BTN_STYLUS, data[4] & 0x10); in wacom_pl_irq()
172 input_report_key(input, BTN_STYLUS2, (wacom->tool[1] == BTN_TOOL_PEN) && (data[4] & 0x20)); in wacom_pl_irq()
188 unsigned char *data = wacom->data; in wacom_ptu_irq() local
191 if (data[0] != WACOM_REPORT_PENABLED) { in wacom_ptu_irq()
193 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_ptu_irq()
197 if (data[1] & 0x04) { in wacom_ptu_irq()
198 input_report_key(input, BTN_TOOL_RUBBER, data[1] & 0x20); in wacom_ptu_irq()
199 input_report_key(input, BTN_TOUCH, data[1] & 0x08); in wacom_ptu_irq()
202 input_report_key(input, BTN_TOOL_PEN, data[1] & 0x20); in wacom_ptu_irq()
203 input_report_key(input, BTN_TOUCH, data[1] & 0x01); in wacom_ptu_irq()
207 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_ptu_irq()
208 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_ptu_irq()
209 input_report_abs(input, ABS_PRESSURE, le16_to_cpup((__le16 *)&data[6])); in wacom_ptu_irq()
210 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_ptu_irq()
211 input_report_key(input, BTN_STYLUS2, data[1] & 0x10); in wacom_ptu_irq()
217 unsigned char *data = wacom->data; in wacom_dtu_irq() local
219 int prox = data[1] & 0x20; in wacom_dtu_irq()
222 "%s: received report #%d", __func__, data[0]); in wacom_dtu_irq()
226 wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_dtu_irq()
232 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_dtu_irq()
233 input_report_key(input, BTN_STYLUS2, data[1] & 0x10); in wacom_dtu_irq()
234 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_dtu_irq()
235 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_dtu_irq()
236 input_report_abs(input, ABS_PRESSURE, ((data[7] & 0x01) << 8) | data[6]); in wacom_dtu_irq()
237 input_report_key(input, BTN_TOUCH, data[1] & 0x05); in wacom_dtu_irq()
247 char *data = wacom->data; in wacom_dtus_irq() local
251 if (data[0] != WACOM_REPORT_DTUS && data[0] != WACOM_REPORT_DTUSPAD) { in wacom_dtus_irq()
253 "%s: received unknown report #%d", __func__, data[0]); in wacom_dtus_irq()
255 } else if (data[0] == WACOM_REPORT_DTUSPAD) { in wacom_dtus_irq()
257 input_report_key(input, BTN_0, (data[1] & 0x01)); in wacom_dtus_irq()
258 input_report_key(input, BTN_1, (data[1] & 0x02)); in wacom_dtus_irq()
259 input_report_key(input, BTN_2, (data[1] & 0x04)); in wacom_dtus_irq()
260 input_report_key(input, BTN_3, (data[1] & 0x08)); in wacom_dtus_irq()
262 data[1] & 0x0f ? PAD_DEVICE_ID : 0); in wacom_dtus_irq()
265 prox = data[1] & 0x80; in wacom_dtus_irq()
267 switch ((data[1] >> 3) & 3) { in wacom_dtus_irq()
280 input_report_key(input, BTN_STYLUS, data[1] & 0x20); in wacom_dtus_irq()
281 input_report_key(input, BTN_STYLUS2, data[1] & 0x40); in wacom_dtus_irq()
282 input_report_abs(input, ABS_X, get_unaligned_be16(&data[3])); in wacom_dtus_irq()
283 input_report_abs(input, ABS_Y, get_unaligned_be16(&data[5])); in wacom_dtus_irq()
284 pressure = ((data[1] & 0x03) << 8) | (data[2] & 0xff); in wacom_dtus_irq()
299 unsigned char *data = wacom->data; in wacom_graphire_irq() local
308 if (data[0] != WACOM_REPORT_PENABLED_BT) { in wacom_graphire_irq()
311 data[0]); in wacom_graphire_irq()
314 } else if (data[0] != WACOM_REPORT_PENABLED) { in wacom_graphire_irq()
316 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_graphire_irq()
320 prox = data[1] & 0x80; in wacom_graphire_irq()
323 switch ((data[1] >> 5) & 3) { in wacom_graphire_irq()
336 input_report_key(input, BTN_MIDDLE, data[1] & 0x04); in wacom_graphire_irq()
345 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_graphire_irq()
346 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_graphire_irq()
349 input_report_abs(input, ABS_PRESSURE, data[6] | in wacom_graphire_irq()
350 (((__u16) (data[1] & 0x08)) << 5)); in wacom_graphire_irq()
352 input_report_abs(input, ABS_PRESSURE, data[6] | in wacom_graphire_irq()
353 ((data[7] & 0x03) << 8)); in wacom_graphire_irq()
354 input_report_key(input, BTN_TOUCH, data[1] & 0x01); in wacom_graphire_irq()
355 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_graphire_irq()
356 input_report_key(input, BTN_STYLUS2, data[1] & 0x04); in wacom_graphire_irq()
358 input_report_key(input, BTN_LEFT, data[1] & 0x01); in wacom_graphire_irq()
359 input_report_key(input, BTN_RIGHT, data[1] & 0x02); in wacom_graphire_irq()
362 input_report_abs(input, ABS_DISTANCE, data[6] & 0x3f); in wacom_graphire_irq()
363 rw = (data[7] & 0x04) - (data[7] & 0x03); in wacom_graphire_irq()
366 rw = 44 - (data[6] >> 2); in wacom_graphire_irq()
369 if (((data[1] >> 5) & 3) == 2) { in wacom_graphire_irq()
372 data[1] & 0x04); in wacom_graphire_irq()
373 rw = (data[6] & 0x01) ? -1 : in wacom_graphire_irq()
374 (data[6] & 0x02) ? 1 : 0; in wacom_graphire_irq()
379 input_report_abs(input, ABS_DISTANCE, data[7] & 0x3f); in wacom_graphire_irq()
380 rw = -(signed char)data[6]; in wacom_graphire_irq()
395 prox = data[7] & 0xf8; in wacom_graphire_irq()
398 input_report_key(pad_input, BTN_BACK, (data[7] & 0x40)); in wacom_graphire_irq()
399 input_report_key(pad_input, BTN_FORWARD, (data[7] & 0x80)); in wacom_graphire_irq()
400 rw = ((data[7] & 0x18) >> 3) - ((data[7] & 0x20) >> 3); in wacom_graphire_irq()
410 prox = (data[7] & 0xf8) || data[8]; in wacom_graphire_irq()
413 input_report_key(pad_input, BTN_BACK, (data[7] & 0x08)); in wacom_graphire_irq()
414 input_report_key(pad_input, BTN_LEFT, (data[7] & 0x20)); in wacom_graphire_irq()
415 input_report_key(pad_input, BTN_FORWARD, (data[7] & 0x10)); in wacom_graphire_irq()
416 input_report_key(pad_input, BTN_RIGHT, (data[7] & 0x40)); in wacom_graphire_irq()
417 input_report_abs(pad_input, ABS_WHEEL, (data[8] & 0x7f)); in wacom_graphire_irq()
425 prox = data[7] & 0x03; in wacom_graphire_irq()
428 input_report_key(pad_input, BTN_0, (data[7] & 0x02)); in wacom_graphire_irq()
429 input_report_key(pad_input, BTN_1, (data[7] & 0x01)); in wacom_graphire_irq()
440 rw = (data[7] >> 2 & 0x07); in wacom_graphire_irq()
466 unsigned char *data = wacom->data; in wacom_intuos_inout() local
472 idx = data[1] & 0x01; in wacom_intuos_inout()
475 if ((data[1] & 0xfc) == 0xc0) { in wacom_intuos_inout()
477 wacom->serial[idx] = ((data[3] & 0x0f) << 28) + in wacom_intuos_inout()
478 (data[4] << 20) + (data[5] << 12) + in wacom_intuos_inout()
479 (data[6] << 4) + (data[7] >> 4); in wacom_intuos_inout()
481 wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) | in wacom_intuos_inout()
482 ((data[7] & 0x0f) << 20) | ((data[8] & 0xf0) << 12); in wacom_intuos_inout()
581 (features->type == CINTIQ && !(data[1] & 0x40))) in wacom_intuos_inout()
589 if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) { in wacom_intuos_inout()
597 if ((data[1] & 0xfe) == 0x80) { in wacom_intuos_inout()
651 unsigned char *data = wacom->data; in wacom_intuos_general() local
656 if ((data[1] & 0xb8) == 0xa0) { in wacom_intuos_general()
657 t = (data[6] << 2) | ((data[7] >> 6) & 3); in wacom_intuos_general()
659 t = (t << 1) | (data[1] & 1); in wacom_intuos_general()
663 (((data[7] << 1) & 0x7e) | (data[8] >> 7)) - 64); in wacom_intuos_general()
664 input_report_abs(input, ABS_TILT_Y, (data[8] & 0x7f) - 64); in wacom_intuos_general()
665 input_report_key(input, BTN_STYLUS, data[1] & 2); in wacom_intuos_general()
666 input_report_key(input, BTN_STYLUS2, data[1] & 4); in wacom_intuos_general()
671 if ((data[1] & 0xbc) == 0xb4) { in wacom_intuos_general()
673 (data[6] << 2) | ((data[7] >> 6) & 3)); in wacom_intuos_general()
675 (((data[7] << 1) & 0x7e) | (data[8] >> 7)) - 64); in wacom_intuos_general()
676 input_report_abs(input, ABS_TILT_Y, (data[8] & 0x7f) - 64); in wacom_intuos_general()
683 unsigned char *data = wacom->data; in wacom_intuos_irq() local
688 if (data[0] != WACOM_REPORT_PENABLED && in wacom_intuos_irq()
689 data[0] != WACOM_REPORT_INTUOSREAD && in wacom_intuos_irq()
690 data[0] != WACOM_REPORT_INTUOSWRITE && in wacom_intuos_irq()
691 data[0] != WACOM_REPORT_INTUOSPAD && in wacom_intuos_irq()
692 data[0] != WACOM_REPORT_CINTIQ && in wacom_intuos_irq()
693 data[0] != WACOM_REPORT_CINTIQPAD && in wacom_intuos_irq()
694 data[0] != WACOM_REPORT_INTUOS5PAD) { in wacom_intuos_irq()
696 "%s: received unknown report #%d\n", __func__, data[0]); in wacom_intuos_irq()
702 idx = data[1] & 0x01; in wacom_intuos_irq()
705 if (data[0] == WACOM_REPORT_INTUOSPAD || data[0] == WACOM_REPORT_INTUOS5PAD || in wacom_intuos_irq()
706 data[0] == WACOM_REPORT_CINTIQPAD) { in wacom_intuos_irq()
709 input_report_key(input, BTN_0, (data[2] & 0x01)); in wacom_intuos_irq()
710 input_report_key(input, BTN_1, (data[3] & 0x01)); in wacom_intuos_irq()
711 input_report_key(input, BTN_2, (data[3] & 0x02)); in wacom_intuos_irq()
712 input_report_key(input, BTN_3, (data[3] & 0x04)); in wacom_intuos_irq()
713 input_report_key(input, BTN_4, (data[3] & 0x08)); in wacom_intuos_irq()
714 input_report_key(input, BTN_5, (data[3] & 0x10)); in wacom_intuos_irq()
715 input_report_key(input, BTN_6, (data[3] & 0x20)); in wacom_intuos_irq()
716 if (data[1] & 0x80) { in wacom_intuos_irq()
717 input_report_abs(input, ABS_WHEEL, (data[1] & 0x7f)); in wacom_intuos_irq()
723 input_report_key(input, BTN_7, (data[3] & 0x40)); in wacom_intuos_irq()
724 input_report_key(input, BTN_8, (data[3] & 0x80)); in wacom_intuos_irq()
726 if (data[1] | (data[2] & 0x01) | data[3]) { in wacom_intuos_irq()
732 input_report_key(input, BTN_0, (data[6] & 0x01)); in wacom_intuos_irq()
733 input_report_key(input, BTN_1, (data[6] & 0x02)); in wacom_intuos_irq()
734 input_report_key(input, BTN_2, (data[6] & 0x04)); in wacom_intuos_irq()
735 input_report_key(input, BTN_3, (data[6] & 0x08)); in wacom_intuos_irq()
736 input_report_key(input, BTN_4, (data[6] & 0x10)); in wacom_intuos_irq()
737 input_report_key(input, BTN_5, (data[6] & 0x20)); in wacom_intuos_irq()
738 if (data[6] & 0x3f) { in wacom_intuos_irq()
744 input_report_key(input, BTN_0, (data[3] & 0x01)); in wacom_intuos_irq()
745 input_report_key(input, BTN_1, (data[4] & 0x01)); in wacom_intuos_irq()
746 input_report_key(input, BTN_2, (data[4] & 0x02)); in wacom_intuos_irq()
747 input_report_key(input, BTN_3, (data[4] & 0x04)); in wacom_intuos_irq()
748 input_report_key(input, BTN_4, (data[4] & 0x08)); in wacom_intuos_irq()
749 input_report_key(input, BTN_5, (data[4] & 0x10)); in wacom_intuos_irq()
750 input_report_key(input, BTN_6, (data[4] & 0x20)); in wacom_intuos_irq()
751 input_report_key(input, BTN_7, (data[4] & 0x40)); in wacom_intuos_irq()
752 input_report_key(input, BTN_8, (data[4] & 0x80)); in wacom_intuos_irq()
753 if ((data[3] & 0x01) | data[4]) { in wacom_intuos_irq()
759 input_report_key(input, BTN_0, (data[6] & 0x01)); in wacom_intuos_irq()
760 input_report_key(input, BTN_1, (data[6] & 0x02)); in wacom_intuos_irq()
761 input_report_key(input, BTN_2, (data[6] & 0x04)); in wacom_intuos_irq()
762 input_report_key(input, BTN_3, (data[6] & 0x08)); in wacom_intuos_irq()
763 input_report_key(input, BTN_4, (data[6] & 0x10)); in wacom_intuos_irq()
764 input_report_key(input, BTN_5, (data[6] & 0x20)); in wacom_intuos_irq()
765 input_report_key(input, BTN_6, (data[6] & 0x40)); in wacom_intuos_irq()
766 input_report_key(input, BTN_7, (data[6] & 0x80)); in wacom_intuos_irq()
767 input_report_key(input, BTN_8, (data[8] & 0x01)); in wacom_intuos_irq()
768 input_report_key(input, BTN_9, (data[8] & 0x02)); in wacom_intuos_irq()
769 input_report_key(input, BTN_A, (data[8] & 0x04)); in wacom_intuos_irq()
770 input_report_key(input, BTN_B, (data[8] & 0x08)); in wacom_intuos_irq()
771 input_report_key(input, BTN_C, (data[8] & 0x10)); in wacom_intuos_irq()
772 input_report_key(input, BTN_X, (data[8] & 0x20)); in wacom_intuos_irq()
773 input_report_key(input, BTN_Y, (data[8] & 0x40)); in wacom_intuos_irq()
774 input_report_key(input, BTN_Z, (data[8] & 0x80)); in wacom_intuos_irq()
783 input_report_key(input, KEY_PROG1, data[4] & 0x07); in wacom_intuos_irq()
784 input_report_key(input, KEY_PROG2, data[4] & 0xE0); in wacom_intuos_irq()
785 input_report_key(input, KEY_PROG3, data[3] & 0x1C); in wacom_intuos_irq()
787 if (data[1] & 0x80) { in wacom_intuos_irq()
788 input_report_abs(input, ABS_WHEEL, (data[1] & 0x7f)); in wacom_intuos_irq()
794 if (data[2] & 0x80) { in wacom_intuos_irq()
795 input_report_abs(input, ABS_THROTTLE, (data[2] & 0x7f)); in wacom_intuos_irq()
801 if (data[1] | data[2] | (data[3] & 0x1f) | data[4] | data[6] | data[8]) { in wacom_intuos_irq()
807 input_report_key(input, KEY_PROG1, data[2] & 0x01); in wacom_intuos_irq()
808 input_report_key(input, KEY_PROG2, data[2] & 0x02); in wacom_intuos_irq()
809 input_report_key(input, KEY_PROG3, data[2] & 0x04); in wacom_intuos_irq()
811 input_report_abs(input, ABS_X, be16_to_cpup((__be16 *)&data[4])); in wacom_intuos_irq()
812 input_report_abs(input, ABS_Y, be16_to_cpup((__be16 *)&data[6])); in wacom_intuos_irq()
813 input_report_abs(input, ABS_Z, be16_to_cpup((__be16 *)&data[8])); in wacom_intuos_irq()
814 if ((data[2] & 0x07) | data[4] | data[5] | data[6] | data[7] | data[8] | data[9]) { in wacom_intuos_irq()
825 input_report_key(input, BTN_1, (data[4] & 0x01)); in wacom_intuos_irq()
826 input_report_key(input, BTN_2, (data[4] & 0x02)); in wacom_intuos_irq()
827 input_report_key(input, BTN_3, (data[4] & 0x04)); in wacom_intuos_irq()
828 input_report_key(input, BTN_4, (data[4] & 0x08)); in wacom_intuos_irq()
830 input_report_key(input, BTN_5, (data[4] & 0x10)); /* Right */ in wacom_intuos_irq()
831 input_report_key(input, BTN_6, (data[4] & 0x20)); /* Up */ in wacom_intuos_irq()
832 input_report_key(input, BTN_7, (data[4] & 0x40)); /* Left */ in wacom_intuos_irq()
833 input_report_key(input, BTN_8, (data[4] & 0x80)); /* Down */ in wacom_intuos_irq()
834 input_report_key(input, BTN_0, (data[3] & 0x01)); /* Center */ in wacom_intuos_irq()
836 if (data[4] | (data[3] & 0x01)) { in wacom_intuos_irq()
845 input_report_key(input, BTN_0, (data[3] & 0x01)); in wacom_intuos_irq()
853 input_report_key(input, BTN_1 + i, data[4] & (1 << i)); in wacom_intuos_irq()
855 if (data[2] & 0x80) { in wacom_intuos_irq()
856 input_report_abs(input, ABS_WHEEL, (data[2] & 0x7f)); in wacom_intuos_irq()
862 if (data[2] | (data[3] & 0x01) | data[4] | data[5]) { in wacom_intuos_irq()
869 input_report_key(input, BTN_0, (data[5] & 0x01)); in wacom_intuos_irq()
870 input_report_key(input, BTN_1, (data[6] & 0x01)); in wacom_intuos_irq()
871 input_report_key(input, BTN_2, (data[6] & 0x02)); in wacom_intuos_irq()
872 input_report_key(input, BTN_3, (data[6] & 0x04)); in wacom_intuos_irq()
873 input_report_key(input, BTN_4, (data[6] & 0x08)); in wacom_intuos_irq()
874 input_report_key(input, BTN_5, (data[6] & 0x10)); in wacom_intuos_irq()
875 input_report_key(input, BTN_6, (data[6] & 0x20)); in wacom_intuos_irq()
876 input_report_key(input, BTN_7, (data[6] & 0x40)); in wacom_intuos_irq()
877 input_report_key(input, BTN_8, (data[6] & 0x80)); in wacom_intuos_irq()
878 input_report_key(input, BTN_9, (data[7] & 0x01)); in wacom_intuos_irq()
879 input_report_key(input, BTN_A, (data[8] & 0x01)); in wacom_intuos_irq()
880 input_report_key(input, BTN_B, (data[8] & 0x02)); in wacom_intuos_irq()
881 input_report_key(input, BTN_C, (data[8] & 0x04)); in wacom_intuos_irq()
882 input_report_key(input, BTN_X, (data[8] & 0x08)); in wacom_intuos_irq()
883 input_report_key(input, BTN_Y, (data[8] & 0x10)); in wacom_intuos_irq()
884 input_report_key(input, BTN_Z, (data[8] & 0x20)); in wacom_intuos_irq()
885 input_report_key(input, BTN_BASE, (data[8] & 0x40)); in wacom_intuos_irq()
886 input_report_key(input, BTN_BASE2, (data[8] & 0x80)); in wacom_intuos_irq()
889 input_report_key(input, KEY_PROG1, data[9] & 0x01); in wacom_intuos_irq()
890 input_report_key(input, KEY_PROG2, data[9] & 0x02); in wacom_intuos_irq()
891 input_report_key(input, KEY_PROG3, data[9] & 0x04); in wacom_intuos_irq()
894 input_report_key(input, BTN_0, (data[5] & 0x01)); in wacom_intuos_irq()
895 input_report_key(input, BTN_1, (data[5] & 0x02)); in wacom_intuos_irq()
896 input_report_key(input, BTN_2, (data[5] & 0x04)); in wacom_intuos_irq()
897 input_report_key(input, BTN_3, (data[5] & 0x08)); in wacom_intuos_irq()
898 input_report_key(input, BTN_4, (data[6] & 0x01)); in wacom_intuos_irq()
899 input_report_key(input, BTN_5, (data[6] & 0x02)); in wacom_intuos_irq()
900 input_report_key(input, BTN_6, (data[6] & 0x04)); in wacom_intuos_irq()
901 input_report_key(input, BTN_7, (data[6] & 0x08)); in wacom_intuos_irq()
902 input_report_key(input, BTN_8, (data[5] & 0x10)); in wacom_intuos_irq()
903 input_report_key(input, BTN_9, (data[6] & 0x10)); in wacom_intuos_irq()
905 input_report_abs(input, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]); in wacom_intuos_irq()
906 input_report_abs(input, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]); in wacom_intuos_irq()
908 if ((data[5] & 0x1f) | data[6] | (data[1] & 0x1f) | in wacom_intuos_irq()
909 data[2] | (data[3] & 0x1f) | data[4] | data[8] | in wacom_intuos_irq()
910 (data[7] & 0x01)) { in wacom_intuos_irq()
925 input_report_abs(input, ABS_X, (data[2] << 9) | (data[3] << 1) | ((data[9] >> 1) & 1)); in wacom_intuos_irq()
926 input_report_abs(input, ABS_Y, (data[4] << 9) | (data[5] << 1) | (data[9] & 1)); in wacom_intuos_irq()
927 input_report_abs(input, ABS_DISTANCE, ((data[9] >> 2) & 0x3f)); in wacom_intuos_irq()
929 input_report_abs(input, ABS_X, be16_to_cpup((__be16 *)&data[2])); in wacom_intuos_irq()
930 input_report_abs(input, ABS_Y, be16_to_cpup((__be16 *)&data[4])); in wacom_intuos_irq()
931 input_report_abs(input, ABS_DISTANCE, ((data[9] >> 3) & 0x1f)); in wacom_intuos_irq()
938 if ((data[1] & 0xbc) == 0xa8 || (data[1] & 0xbe) == 0xb0 || (data[1] & 0xbc) == 0xac) { in wacom_intuos_irq()
940 if (data[1] & 0x02) { in wacom_intuos_irq()
944 t = (data[6] << 3) | ((data[7] >> 5) & 7); in wacom_intuos_irq()
945 t = (data[7] & 0x20) ? ((t > 900) ? ((t-1) / 2 - 1350) : in wacom_intuos_irq()
950 t = (data[6] << 3) | ((data[7] >> 5) & 7); in wacom_intuos_irq()
951 input_report_abs(input, ABS_RZ, (data[7] & 0x20) ? in wacom_intuos_irq()
955 } else if (!(data[1] & 0x10) && features->type < INTUOS3S) { in wacom_intuos_irq()
957 input_report_key(input, BTN_LEFT, data[8] & 0x01); in wacom_intuos_irq()
958 input_report_key(input, BTN_MIDDLE, data[8] & 0x02); in wacom_intuos_irq()
959 input_report_key(input, BTN_RIGHT, data[8] & 0x04); in wacom_intuos_irq()
961 input_report_key(input, BTN_SIDE, data[8] & 0x20); in wacom_intuos_irq()
962 input_report_key(input, BTN_EXTRA, data[8] & 0x10); in wacom_intuos_irq()
963 t = (data[6] << 2) | ((data[7] >> 6) & 3); in wacom_intuos_irq()
964 input_report_abs(input, ABS_THROTTLE, (data[8] & 0x08) ? -t : t); in wacom_intuos_irq()
969 input_report_key(input, BTN_LEFT, data[6] & 0x01); in wacom_intuos_irq()
970 input_report_key(input, BTN_MIDDLE, data[6] & 0x02); in wacom_intuos_irq()
971 input_report_key(input, BTN_RIGHT, data[6] & 0x04); in wacom_intuos_irq()
972 input_report_rel(input, REL_WHEEL, ((data[7] & 0x80) >> 7) in wacom_intuos_irq()
973 - ((data[7] & 0x40) >> 6)); in wacom_intuos_irq()
974 input_report_key(input, BTN_SIDE, data[6] & 0x08); in wacom_intuos_irq()
975 input_report_key(input, BTN_EXTRA, data[6] & 0x10); in wacom_intuos_irq()
978 (((data[7] << 1) & 0x7e) | (data[8] >> 7)) - 64); in wacom_intuos_irq()
979 input_report_abs(input, ABS_TILT_Y, (data[8] & 0x7f) - 64); in wacom_intuos_irq()
982 input_report_key(input, BTN_LEFT, data[8] & 0x04); in wacom_intuos_irq()
983 input_report_key(input, BTN_MIDDLE, data[8] & 0x08); in wacom_intuos_irq()
984 input_report_key(input, BTN_RIGHT, data[8] & 0x10); in wacom_intuos_irq()
985 input_report_rel(input, REL_WHEEL, (data[8] & 0x01) in wacom_intuos_irq()
986 - ((data[8] & 0x02) >> 1)); in wacom_intuos_irq()
990 input_report_key(input, BTN_SIDE, data[8] & 0x40); in wacom_intuos_irq()
991 input_report_key(input, BTN_EXTRA, data[8] & 0x20); in wacom_intuos_irq()
999 input_report_key(input, BTN_LEFT, data[8] & 0x01); in wacom_intuos_irq()
1000 input_report_key(input, BTN_MIDDLE, data[8] & 0x02); in wacom_intuos_irq()
1001 input_report_key(input, BTN_RIGHT, data[8] & 0x04); in wacom_intuos_irq()
1002 input_report_key(input, BTN_SIDE, data[8] & 0x10); in wacom_intuos_irq()
1003 input_report_key(input, BTN_EXTRA, data[8] & 0x08); in wacom_intuos_irq()
1023 unsigned char *data) in wacom_intuos_bt_process_data() argument
1025 memcpy(wacom->data, data, 10); in wacom_intuos_bt_process_data()
1035 unsigned char data[WACOM_PKGLEN_MAX]; in wacom_intuos_bt_irq() local
1039 memcpy(data, wacom->data, len); in wacom_intuos_bt_irq()
1041 switch (data[0]) { in wacom_intuos_bt_irq()
1043 wacom_intuos_bt_process_data(wacom, data + i); in wacom_intuos_bt_irq()
1047 wacom_intuos_bt_process_data(wacom, data + i); in wacom_intuos_bt_irq()
1049 wacom_intuos_bt_process_data(wacom, data + i); in wacom_intuos_bt_irq()
1051 power_raw = data[i]; in wacom_intuos_bt_irq()
1062 data[0], data[1], len); in wacom_intuos_bt_irq()
1096 unsigned char *data = wacom->data; in wacom_24hdt_irq() local
1098 int current_num_contacts = data[61]; in wacom_24hdt_irq()
1105 current_num_contacts = data[63]; in wacom_24hdt_irq()
1122 bool touch = (data[offset] & 0x1) && !wacom->shared->stylus_in_proximity; in wacom_24hdt_irq()
1123 int slot = input_mt_get_slot_by_key(input, data[offset + 1]); in wacom_24hdt_irq()
1131 int t_x = get_unaligned_le16(&data[offset + 2]); in wacom_24hdt_irq()
1132 int t_y = get_unaligned_le16(&data[offset + 4 + y_offset]); in wacom_24hdt_irq()
1138 int c_x = get_unaligned_le16(&data[offset + 4]); in wacom_24hdt_irq()
1139 int c_y = get_unaligned_le16(&data[offset + 8]); in wacom_24hdt_irq()
1140 int w = get_unaligned_le16(&data[offset + 10]); in wacom_24hdt_irq()
1141 int h = get_unaligned_le16(&data[offset + 12]); in wacom_24hdt_irq()
1164 unsigned char *data = wacom->data; in wacom_mt_touch() local
1166 int current_num_contacts = data[2]; in wacom_mt_touch()
1186 bool touch = (data[offset] & 0x1) && !wacom->shared->stylus_in_proximity; in wacom_mt_touch()
1187 int id = get_unaligned_le16(&data[offset + 1]); in wacom_mt_touch()
1196 int x = get_unaligned_le16(&data[offset + x_offset + 7]); in wacom_mt_touch()
1197 int y = get_unaligned_le16(&data[offset + x_offset + 9]); in wacom_mt_touch()
1215 unsigned char *data = wacom->data; in wacom_tpc_mt_touch() local
1219 int p = data[1] & (1 << i); in wacom_tpc_mt_touch()
1225 int x = le16_to_cpup((__le16 *)&data[i * 2 + 2]) & 0x7fff; in wacom_tpc_mt_touch()
1226 int y = le16_to_cpup((__le16 *)&data[i * 2 + 6]) & 0x7fff; in wacom_tpc_mt_touch()
1242 unsigned char *data = wacom->data; in wacom_tpc_single_touch() local
1251 prox = prox && (data[0] & 0x01); in wacom_tpc_single_touch()
1252 x = get_unaligned_le16(&data[1]); in wacom_tpc_single_touch()
1253 y = get_unaligned_le16(&data[3]); in wacom_tpc_single_touch()
1255 prox = prox && (data[2] & 0x01); in wacom_tpc_single_touch()
1256 x = get_unaligned_le16(&data[3]); in wacom_tpc_single_touch()
1257 y = get_unaligned_le16(&data[5]); in wacom_tpc_single_touch()
1259 prox = prox && (data[1] & 0x01); in wacom_tpc_single_touch()
1260 x = le16_to_cpup((__le16 *)&data[2]); in wacom_tpc_single_touch()
1261 y = le16_to_cpup((__le16 *)&data[4]); in wacom_tpc_single_touch()
1278 unsigned char *data = wacom->data; in wacom_tpc_pen() local
1280 bool prox = data[1] & 0x20; in wacom_tpc_pen()
1284 wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_tpc_pen()
1291 input_report_key(input, BTN_STYLUS, data[1] & 0x02); in wacom_tpc_pen()
1292 input_report_key(input, BTN_STYLUS2, data[1] & 0x10); in wacom_tpc_pen()
1293 input_report_abs(input, ABS_X, le16_to_cpup((__le16 *)&data[2])); in wacom_tpc_pen()
1294 input_report_abs(input, ABS_Y, le16_to_cpup((__le16 *)&data[4])); in wacom_tpc_pen()
1295 input_report_abs(input, ABS_PRESSURE, ((data[7] & 0x07) << 8) | data[6]); in wacom_tpc_pen()
1296 input_report_key(input, BTN_TOUCH, data[1] & 0x05); in wacom_tpc_pen()
1306 unsigned char *data = wacom->data; in wacom_tpc_irq() local
1309 "%s: received report #%d\n", __func__, data[0]); in wacom_tpc_irq()
1322 switch (data[0]) { in wacom_tpc_irq()
1635 unsigned char *data = wacom->data; in wacom_bpt_touch() local
1638 if (data[0] != 0x02) in wacom_bpt_touch()
1642 int offset = (data[1] & 0x80) ? (8 * i) : (9 * i); in wacom_bpt_touch()
1643 bool touch = data[offset + 3] & 0x80; in wacom_bpt_touch()
1656 int x = get_unaligned_be16(&data[offset + 3]) & 0x7ff; in wacom_bpt_touch()
1657 int y = get_unaligned_be16(&data[offset + 5]) & 0x7ff; in wacom_bpt_touch()
1669 input_report_key(pad_input, BTN_LEFT, (data[1] & 0x08) != 0); in wacom_bpt_touch()
1670 input_report_key(pad_input, BTN_FORWARD, (data[1] & 0x04) != 0); in wacom_bpt_touch()
1671 input_report_key(pad_input, BTN_BACK, (data[1] & 0x02) != 0); in wacom_bpt_touch()
1672 input_report_key(pad_input, BTN_RIGHT, (data[1] & 0x01) != 0); in wacom_bpt_touch()
1678 static void wacom_bpt3_touch_msg(struct wacom_wac *wacom, unsigned char *data) in wacom_bpt3_touch_msg() argument
1682 bool touch = data[1] & 0x80; in wacom_bpt3_touch_msg()
1683 int slot = input_mt_get_slot_by_key(input, data[0]); in wacom_bpt3_touch_msg()
1694 int x = (data[2] << 4) | (data[4] >> 4); in wacom_bpt3_touch_msg()
1695 int y = (data[3] << 4) | (data[4] & 0x0f); in wacom_bpt3_touch_msg()
1699 width = data[5] * 100; in wacom_bpt3_touch_msg()
1700 height = data[6] * 100; in wacom_bpt3_touch_msg()
1707 int a = data[5]; in wacom_bpt3_touch_msg()
1721 static void wacom_bpt3_button_msg(struct wacom_wac *wacom, unsigned char *data) in wacom_bpt3_button_msg() argument
1727 input_report_key(input, BTN_LEFT, (data[1] & 0x02) != 0); in wacom_bpt3_button_msg()
1728 input_report_key(input, BTN_BACK, (data[1] & 0x08) != 0); in wacom_bpt3_button_msg()
1730 input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0); in wacom_bpt3_button_msg()
1731 input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0); in wacom_bpt3_button_msg()
1733 input_report_key(input, BTN_FORWARD, (data[1] & 0x04) != 0); in wacom_bpt3_button_msg()
1734 input_report_key(input, BTN_RIGHT, (data[1] & 0x01) != 0); in wacom_bpt3_button_msg()
1740 unsigned char *data = wacom->data; in wacom_bpt3_touch() local
1741 int count = data[1] & 0x07; in wacom_bpt3_touch()
1744 if (data[0] != 0x02) in wacom_bpt3_touch()
1750 int msg_id = data[offset]; in wacom_bpt3_touch()
1753 wacom_bpt3_touch_msg(wacom, data + offset); in wacom_bpt3_touch()
1755 wacom_bpt3_button_msg(wacom, data + offset); in wacom_bpt3_touch()
1768 unsigned char *data = wacom->data; in wacom_bpt_pen() local
1771 if (data[0] != WACOM_REPORT_PENABLED) in wacom_bpt_pen()
1774 prox = (data[1] & 0x20) == 0x20; in wacom_bpt_pen()
1787 if (data[1] & 0x08) { in wacom_bpt_pen()
1801 x = le16_to_cpup((__le16 *)&data[2]); in wacom_bpt_pen()
1802 y = le16_to_cpup((__le16 *)&data[4]); in wacom_bpt_pen()
1803 p = le16_to_cpup((__le16 *)&data[6]); in wacom_bpt_pen()
1810 if (data[8] <= features->distance_max) in wacom_bpt_pen()
1811 d = features->distance_max - data[8]; in wacom_bpt_pen()
1813 pen = data[1] & 0x01; in wacom_bpt_pen()
1814 btn1 = data[1] & 0x02; in wacom_bpt_pen()
1815 btn2 = data[1] & 0x04; in wacom_bpt_pen()
1848 unsigned char *data) in wacom_bamboo_pad_pen_event() argument
1859 prefix = data[0]; in wacom_bamboo_pad_pen_event()
1860 data[0] = WACOM_REPORT_BPAD_PEN; in wacom_bamboo_pad_pen_event()
1867 hid_input_report(wacom->shared->pen, HID_INPUT_REPORT, data, in wacom_bamboo_pad_pen_event()
1870 data[0] = prefix; in wacom_bamboo_pad_pen_event()
1874 unsigned char *data) in wacom_bamboo_pad_touch_event() argument
1882 prefix = data[0]; in wacom_bamboo_pad_touch_event()
1894 finger_data = data + 1 + id * 3; in wacom_bamboo_pad_touch_event()
1916 unsigned char *data = wacom->data; in wacom_bamboo_pad_irq() local
1920 (data[0] != WACOM_REPORT_BPAD_TOUCH)) in wacom_bamboo_pad_irq()
1923 if (data[1] & 0x01) in wacom_bamboo_pad_irq()
1924 wacom_bamboo_pad_pen_event(wacom, &data[1]); in wacom_bamboo_pad_irq()
1926 if (data[1] & 0x02) in wacom_bamboo_pad_irq()
1927 return wacom_bamboo_pad_touch_event(wacom, &data[9]); in wacom_bamboo_pad_irq()
1934 unsigned char *data = wacom->data; in wacom_wireless_irq() local
1937 if (len != WACOM_PKGLEN_WIRELESS || data[0] != WACOM_REPORT_WL) in wacom_wireless_irq()
1940 connected = data[1] & 0x01; in wacom_wireless_irq()
1948 SW_MUTE_DEVICE, data[5] & 0x40); in wacom_wireless_irq()
1952 pid = get_unaligned_be16(&data[6]); in wacom_wireless_irq()
1953 battery = (data[5] & 0x3f) * 100 / 31; in wacom_wireless_irq()
1954 charging = !!(data[5] & 0x80); in wacom_wireless_irq()
1977 unsigned char *data = wacom_wac->data; in wacom_status_irq() local
1979 if (data[0] != WACOM_REPORT_USB) in wacom_status_irq()
1986 SW_MUTE_DEVICE, data[8] & 0x40); in wacom_status_irq()
1990 if (data[9] & 0x02) { /* wireless module is attached */ in wacom_status_irq()
1991 int battery = (data[8] & 0x3f) * 100 / 31; in wacom_status_irq()
1992 bool charging = !!(data[8] & 0x80); in wacom_status_irq()
2083 else if (wacom_wac->data[0] == WACOM_REPORT_USB) in wacom_wac_irq()
2100 if (wacom_wac->data[0] == WACOM_REPORT_USB) in wacom_wac_irq()