Lines Matching refs:wacom
52 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_notify_battery() local
64 if (wacom->battery) in wacom_notify_battery()
65 power_supply_changed(wacom->battery); in wacom_notify_battery()
69 static int wacom_penpartner_irq(struct wacom_wac *wacom) in wacom_penpartner_irq() argument
71 unsigned char *data = wacom->data; in wacom_penpartner_irq()
72 struct input_dev *input = wacom->pen_input; 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()
79 input_report_key(input, wacom->tool[0], 1); in wacom_penpartner_irq()
80 input_report_abs(input, ABS_MISC, wacom->id[0]); /* report tool id */ in wacom_penpartner_irq()
87 input_report_key(input, wacom->tool[0], 0); in wacom_penpartner_irq()
113 static int wacom_pl_irq(struct wacom_wac *wacom) in wacom_pl_irq() argument
115 struct wacom_features *features = &wacom->features; in wacom_pl_irq()
116 unsigned char *data = wacom->data; in wacom_pl_irq()
117 struct input_dev *input = wacom->pen_input; in wacom_pl_irq()
128 if (!wacom->id[0]) { in wacom_pl_irq()
130 wacom->tool[0] = BTN_TOOL_RUBBER; in wacom_pl_irq()
131 wacom->id[0] = ERASER_DEVICE_ID; in wacom_pl_irq()
134 wacom->tool[0] = BTN_TOOL_PEN; in wacom_pl_irq()
135 wacom->id[0] = STYLUS_DEVICE_ID; in wacom_pl_irq()
143 if (wacom->tool[0] == BTN_TOOL_RUBBER && !(data[4] & 0x20)) { in wacom_pl_irq()
147 wacom->tool[0] = BTN_TOOL_PEN; in wacom_pl_irq()
148 wacom->id[0] = STYLUS_DEVICE_ID; in wacom_pl_irq()
163 input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20)); in wacom_pl_irq()
166 wacom->id[0] = 0; in wacom_pl_irq()
167 input_report_key(input, wacom->tool[0], prox); in wacom_pl_irq()
168 input_report_abs(input, ABS_MISC, wacom->id[0]); in wacom_pl_irq()
172 static int wacom_ptu_irq(struct wacom_wac *wacom) in wacom_ptu_irq() argument
174 unsigned char *data = wacom->data; in wacom_ptu_irq()
175 struct input_dev *input = wacom->pen_input; in wacom_ptu_irq()
186 wacom->id[0] = ERASER_DEVICE_ID; in wacom_ptu_irq()
190 wacom->id[0] = STYLUS_DEVICE_ID; in wacom_ptu_irq()
192 input_report_abs(input, ABS_MISC, wacom->id[0]); /* report tool id */ in wacom_ptu_irq()
201 static int wacom_dtu_irq(struct wacom_wac *wacom) in wacom_dtu_irq() argument
203 unsigned char *data = wacom->data; in wacom_dtu_irq()
204 struct input_dev *input = wacom->pen_input; in wacom_dtu_irq()
212 wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_dtu_irq()
213 if (wacom->tool[0] == BTN_TOOL_PEN) in wacom_dtu_irq()
214 wacom->id[0] = STYLUS_DEVICE_ID; in wacom_dtu_irq()
216 wacom->id[0] = ERASER_DEVICE_ID; in wacom_dtu_irq()
225 wacom->id[0] = 0; in wacom_dtu_irq()
226 input_report_key(input, wacom->tool[0], prox); in wacom_dtu_irq()
227 input_report_abs(input, ABS_MISC, wacom->id[0]); in wacom_dtu_irq()
231 static int wacom_dtus_irq(struct wacom_wac *wacom) in wacom_dtus_irq() argument
233 char *data = wacom->data; in wacom_dtus_irq()
234 struct input_dev *input = wacom->pen_input; in wacom_dtus_irq()
242 input = wacom->pad_input; in wacom_dtus_irq()
255 wacom->tool[0] = BTN_TOOL_RUBBER; in wacom_dtus_irq()
256 wacom->id[0] = ERASER_DEVICE_ID; in wacom_dtus_irq()
260 wacom->tool[0] = BTN_TOOL_PEN; in wacom_dtus_irq()
261 wacom->id[0] = STYLUS_DEVICE_ID; in wacom_dtus_irq()
275 wacom->id[0] = 0; in wacom_dtus_irq()
276 input_report_key(input, wacom->tool[0], prox); in wacom_dtus_irq()
277 input_report_abs(input, ABS_MISC, wacom->id[0]); in wacom_dtus_irq()
282 static int wacom_graphire_irq(struct wacom_wac *wacom) in wacom_graphire_irq() argument
284 struct wacom_features *features = &wacom->features; in wacom_graphire_irq()
285 unsigned char *data = wacom->data; in wacom_graphire_irq()
286 struct input_dev *input = wacom->pen_input; in wacom_graphire_irq()
287 struct input_dev *pad_input = wacom->pad_input; in wacom_graphire_irq()
307 if (prox || wacom->id[0]) { in wacom_graphire_irq()
312 wacom->tool[0] = BTN_TOOL_PEN; in wacom_graphire_irq()
313 wacom->id[0] = STYLUS_DEVICE_ID; in wacom_graphire_irq()
317 wacom->tool[0] = BTN_TOOL_RUBBER; in wacom_graphire_irq()
318 wacom->id[0] = ERASER_DEVICE_ID; in wacom_graphire_irq()
326 wacom->tool[0] = BTN_TOOL_MOUSE; in wacom_graphire_irq()
327 wacom->id[0] = CURSOR_DEVICE_ID; in wacom_graphire_irq()
333 if (wacom->tool[0] != BTN_TOOL_MOUSE) { in wacom_graphire_irq()
372 wacom->id[0] = 0; in wacom_graphire_irq()
373 input_report_abs(input, ABS_MISC, wacom->id[0]); /* report tool id */ in wacom_graphire_irq()
374 input_report_key(input, wacom->tool[0], prox); in wacom_graphire_irq()
382 if (prox || wacom->id[1]) { in wacom_graphire_irq()
383 wacom->id[1] = PAD_DEVICE_ID; in wacom_graphire_irq()
389 wacom->id[1] = 0; in wacom_graphire_irq()
390 input_report_abs(pad_input, ABS_MISC, wacom->id[1]); in wacom_graphire_irq()
397 if (prox || wacom->id[1]) { in wacom_graphire_irq()
398 wacom->id[1] = PAD_DEVICE_ID; in wacom_graphire_irq()
405 wacom->id[1] = 0; in wacom_graphire_irq()
406 input_report_abs(pad_input, ABS_MISC, wacom->id[1]); in wacom_graphire_irq()
412 if (prox || wacom->id[1]) { in wacom_graphire_irq()
413 wacom->id[1] = PAD_DEVICE_ID; in wacom_graphire_irq()
417 wacom->id[1] = 0; in wacom_graphire_irq()
418 input_report_abs(pad_input, ABS_MISC, wacom->id[1]); in wacom_graphire_irq()
429 wacom_notify_battery(wacom, battery_capacity, ps_connected, in wacom_graphire_irq()
438 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_intuos_schedule_prox_event() local
442 re = &(wacom->hdev->report_enum[HID_FEATURE_REPORT]); in wacom_intuos_schedule_prox_event()
445 hid_hw_request(wacom->hdev, r, HID_REQ_GET_REPORT); in wacom_intuos_schedule_prox_event()
449 static int wacom_intuos_inout(struct wacom_wac *wacom) in wacom_intuos_inout() argument
451 struct wacom_features *features = &wacom->features; in wacom_intuos_inout()
452 unsigned char *data = wacom->data; in wacom_intuos_inout()
453 struct input_dev *input = wacom->pen_input; in wacom_intuos_inout()
463 wacom->serial[idx] = ((data[3] & 0x0f) << 28) + in wacom_intuos_inout()
467 wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) | in wacom_intuos_inout()
470 switch (wacom->id[idx]) { in wacom_intuos_inout()
475 wacom->tool[idx] = BTN_TOOL_PENCIL; in wacom_intuos_inout()
492 wacom->tool[idx] = BTN_TOOL_PEN; in wacom_intuos_inout()
497 wacom->tool[idx] = BTN_TOOL_BRUSH; in wacom_intuos_inout()
505 wacom->tool[idx] = BTN_TOOL_MOUSE; in wacom_intuos_inout()
511 wacom->tool[idx] = BTN_TOOL_LENS; in wacom_intuos_inout()
531 wacom->tool[idx] = BTN_TOOL_RUBBER; in wacom_intuos_inout()
540 wacom->tool[idx] = BTN_TOOL_AIRBRUSH; in wacom_intuos_inout()
544 wacom->tool[idx] = BTN_TOOL_PEN; in wacom_intuos_inout()
554 if ((!((wacom->id[idx] >> 20) & 0x01) && in wacom_intuos_inout()
557 (wacom->tool[idx] == BTN_TOOL_LENS && in wacom_intuos_inout()
570 wacom->shared->stylus_in_proximity = true; in wacom_intuos_inout()
571 if (wacom->shared->touch_down) in wacom_intuos_inout()
575 if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) { in wacom_intuos_inout()
578 input_report_abs(input, ABS_DISTANCE, wacom->features.distance_max); in wacom_intuos_inout()
584 wacom->shared->stylus_in_proximity = false; in wacom_intuos_inout()
585 wacom->reporting_data = false; in wacom_intuos_inout()
588 if (!wacom->id[idx]) in wacom_intuos_inout()
600 if (wacom->tool[idx] >= BTN_TOOL_MOUSE) { in wacom_intuos_inout()
617 input_report_key(input, wacom->tool[idx], 0); in wacom_intuos_inout()
619 input_event(input, EV_MSC, MSC_SERIAL, wacom->serial[idx]); in wacom_intuos_inout()
620 wacom->id[idx] = 0; in wacom_intuos_inout()
625 if (!wacom->id[idx]) { in wacom_intuos_inout()
627 wacom_intuos_schedule_prox_event(wacom); in wacom_intuos_inout()
638 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_remote_irq() local
694 wacom->led.select[i] = touch_ring_mode; in wacom_remote_irq()
697 if (!wacom->battery && in wacom_remote_irq()
700 INIT_WORK(&wacom->work, wacom_battery_work); in wacom_remote_irq()
712 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_remote_status_irq() local
731 wacom_remote_destroy_attr_group(wacom, in wacom_remote_status_irq()
747 wacom_remote_create_attr_group(wacom, serial, i); in wacom_remote_status_irq()
750 wacom_remote_destroy_attr_group(wacom, in wacom_remote_status_irq()
758 static void wacom_intuos_general(struct wacom_wac *wacom) in wacom_intuos_general() argument
760 struct wacom_features *features = &wacom->features; in wacom_intuos_general()
761 unsigned char *data = wacom->data; in wacom_intuos_general()
762 struct input_dev *input = wacom->pen_input; in wacom_intuos_general()
792 static int wacom_intuos_irq(struct wacom_wac *wacom) in wacom_intuos_irq() argument
794 struct wacom_features *features = &wacom->features; in wacom_intuos_irq()
795 unsigned char *data = wacom->data; in wacom_intuos_irq()
796 struct input_dev *input = wacom->pen_input; in wacom_intuos_irq()
820 input = wacom->pad_input; in wacom_intuos_irq()
1054 result = wacom_intuos_inout(wacom); in wacom_intuos_irq()
1069 wacom_intuos_general(wacom); in wacom_intuos_irq()
1100 } else if (wacom->tool[idx] == BTN_TOOL_MOUSE) { in wacom_intuos_irq()
1131 wacom->tool[idx] == BTN_TOOL_LENS) { in wacom_intuos_irq()
1141 input_report_abs(input, ABS_MISC, wacom->id[idx]); /* report tool id */ in wacom_intuos_irq()
1142 input_report_key(input, wacom->tool[idx], 1); in wacom_intuos_irq()
1143 input_event(input, EV_MSC, MSC_SERIAL, wacom->serial[idx]); in wacom_intuos_irq()
1144 wacom->reporting_data = true; in wacom_intuos_irq()
1156 static void wacom_intuos_bt_process_data(struct wacom_wac *wacom, in wacom_intuos_bt_process_data() argument
1159 memcpy(wacom->data, data, 10); in wacom_intuos_bt_process_data()
1160 wacom_intuos_irq(wacom); in wacom_intuos_bt_process_data()
1162 input_sync(wacom->pen_input); in wacom_intuos_bt_process_data()
1163 if (wacom->pad_input) in wacom_intuos_bt_process_data()
1164 input_sync(wacom->pad_input); in wacom_intuos_bt_process_data()
1167 static int wacom_intuos_bt_irq(struct wacom_wac *wacom, size_t len) in wacom_intuos_bt_irq() argument
1173 memcpy(data, wacom->data, len); 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()
1189 wacom_notify_battery(wacom, battery_capacity, bat_charging, in wacom_intuos_bt_irq()
1194 dev_dbg(wacom->pen_input->dev.parent, in wacom_intuos_bt_irq()
1202 static int wacom_wac_finger_count_touches(struct wacom_wac *wacom) in wacom_wac_finger_count_touches() argument
1204 struct input_dev *input = wacom->touch_input; in wacom_wac_finger_count_touches()
1205 unsigned touch_max = wacom->features.touch_max; in wacom_wac_finger_count_touches()
1214 !wacom->shared->stylus_in_proximity; in wacom_wac_finger_count_touches()
1226 static int wacom_24hdt_irq(struct wacom_wac *wacom) in wacom_24hdt_irq() argument
1228 struct input_dev *input = wacom->touch_input; in wacom_24hdt_irq()
1229 unsigned char *data = wacom->data; in wacom_24hdt_irq()
1237 if (wacom->features.type == WACOM_27QHDT) { in wacom_24hdt_irq()
1249 wacom->num_contacts_left = current_num_contacts; in wacom_24hdt_irq()
1251 contacts_to_send = min(num_contacts_left, wacom->num_contacts_left); in wacom_24hdt_irq()
1255 bool touch = (data[offset] & 0x1) && !wacom->shared->stylus_in_proximity; in wacom_24hdt_irq()
1270 if (wacom->features.type != WACOM_27QHDT) { in wacom_24hdt_irq()
1286 wacom->num_contacts_left -= contacts_to_send; in wacom_24hdt_irq()
1287 if (wacom->num_contacts_left <= 0) { in wacom_24hdt_irq()
1288 wacom->num_contacts_left = 0; in wacom_24hdt_irq()
1289 wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom); in wacom_24hdt_irq()
1294 static int wacom_mt_touch(struct wacom_wac *wacom) in wacom_mt_touch() argument
1296 struct input_dev *input = wacom->touch_input; in wacom_mt_touch()
1297 unsigned char *data = wacom->data; in wacom_mt_touch()
1304 if (wacom->features.type == MTTPC || wacom->features.type == MTTPC_B) in wacom_mt_touch()
1312 wacom->num_contacts_left = current_num_contacts; in wacom_mt_touch()
1315 contacts_to_send = min(5, wacom->num_contacts_left); in wacom_mt_touch()
1319 bool touch = (data[offset] & 0x1) && !wacom->shared->stylus_in_proximity; in wacom_mt_touch()
1337 wacom->num_contacts_left -= contacts_to_send; in wacom_mt_touch()
1338 if (wacom->num_contacts_left <= 0) { in wacom_mt_touch()
1339 wacom->num_contacts_left = 0; in wacom_mt_touch()
1340 wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom); in wacom_mt_touch()
1345 static int wacom_tpc_mt_touch(struct wacom_wac *wacom) in wacom_tpc_mt_touch() argument
1347 struct input_dev *input = wacom->touch_input; in wacom_tpc_mt_touch()
1348 unsigned char *data = wacom->data; in wacom_tpc_mt_touch()
1353 bool touch = p && !wacom->shared->stylus_in_proximity; in wacom_tpc_mt_touch()
1368 wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom); in wacom_tpc_mt_touch()
1373 static int wacom_tpc_single_touch(struct wacom_wac *wacom, size_t len) in wacom_tpc_single_touch() argument
1375 unsigned char *data = wacom->data; in wacom_tpc_single_touch()
1376 struct input_dev *input = wacom->touch_input; in wacom_tpc_single_touch()
1377 bool prox = !wacom->shared->stylus_in_proximity; in wacom_tpc_single_touch()
1380 if (wacom->features.touch_max > 1 || len > WACOM_PKGLEN_TPC2FG) in wacom_tpc_single_touch()
1404 wacom->shared->touch_down = prox; in wacom_tpc_single_touch()
1409 static int wacom_tpc_pen(struct wacom_wac *wacom) in wacom_tpc_pen() argument
1411 unsigned char *data = wacom->data; in wacom_tpc_pen()
1412 struct input_dev *input = wacom->pen_input; in wacom_tpc_pen()
1415 if (!wacom->shared->stylus_in_proximity) /* first in prox */ in wacom_tpc_pen()
1417 wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; in wacom_tpc_pen()
1420 wacom->shared->stylus_in_proximity = prox; in wacom_tpc_pen()
1423 if (!wacom->shared->touch_down) { in wacom_tpc_pen()
1430 input_report_key(input, wacom->tool[0], prox); in wacom_tpc_pen()
1437 static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len) in wacom_tpc_irq() argument
1439 unsigned char *data = wacom->data; in wacom_tpc_irq()
1441 if (wacom->pen_input) in wacom_tpc_irq()
1442 dev_dbg(wacom->pen_input->dev.parent, in wacom_tpc_irq()
1444 else if (wacom->touch_input) in wacom_tpc_irq()
1445 dev_dbg(wacom->touch_input->dev.parent, in wacom_tpc_irq()
1450 return wacom_tpc_single_touch(wacom, len); in wacom_tpc_irq()
1453 return wacom_tpc_mt_touch(wacom); in wacom_tpc_irq()
1456 return wacom_tpc_pen(wacom); in wacom_tpc_irq()
1464 return wacom_tpc_single_touch(wacom, len); in wacom_tpc_irq()
1468 return wacom_mt_touch(wacom); in wacom_tpc_irq()
1471 return wacom_tpc_pen(wacom); in wacom_tpc_irq()
1507 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_pen_usage_mapping() local
1508 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_pen_usage_mapping()
1547 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_pen_event() local
1548 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_pen_event()
1583 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_pen_report() local
1584 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_pen_report()
1611 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_finger_usage_mapping() local
1612 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_usage_mapping()
1703 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_finger_event() local
1704 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_event()
1739 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_finger_pre_report() local
1740 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_pre_report()
1782 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_finger_report() local
1783 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_report()
1807 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_usage_mapping() local
1808 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_usage_mapping()
1824 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_event() local
1826 if (wacom->wacom_wac.features.type != HID_GENERIC) in wacom_wac_event()
1859 struct wacom *wacom = hid_get_drvdata(hdev); in wacom_wac_report() local
1860 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_report()
1881 static int wacom_bpt_touch(struct wacom_wac *wacom) in wacom_bpt_touch() argument
1883 struct wacom_features *features = &wacom->features; in wacom_bpt_touch()
1884 struct input_dev *input = wacom->touch_input; in wacom_bpt_touch()
1885 struct input_dev *pad_input = wacom->pad_input; in wacom_bpt_touch()
1886 unsigned char *data = wacom->data; in wacom_bpt_touch()
1902 touch = touch && !wacom->shared->stylus_in_proximity; in wacom_bpt_touch()
1924 wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom); in wacom_bpt_touch()
1929 static void wacom_bpt3_touch_msg(struct wacom_wac *wacom, unsigned char *data) in wacom_bpt3_touch_msg() argument
1931 struct wacom_features *features = &wacom->features; in wacom_bpt3_touch_msg()
1932 struct input_dev *input = wacom->touch_input; in wacom_bpt3_touch_msg()
1939 touch = touch && !wacom->shared->stylus_in_proximity; 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
1974 struct input_dev *input = wacom->pad_input; in wacom_bpt3_button_msg()
1975 struct wacom_features *features = &wacom->features; in wacom_bpt3_button_msg()
1988 static int wacom_bpt3_touch(struct wacom_wac *wacom) in wacom_bpt3_touch() argument
1990 unsigned char *data = wacom->data; 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()
2011 if (wacom->touch_registered && touch_changed) { in wacom_bpt3_touch()
2012 input_mt_sync_frame(wacom->touch_input); in wacom_bpt3_touch()
2013 wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom); in wacom_bpt3_touch()
2019 static int wacom_bpt_pen(struct wacom_wac *wacom) in wacom_bpt_pen() argument
2021 struct wacom_features *features = &wacom->features; in wacom_bpt_pen()
2022 struct input_dev *input = wacom->pen_input; in wacom_bpt_pen()
2023 unsigned char *data = wacom->data; in wacom_bpt_pen()
2041 if (!wacom->shared->stylus_in_proximity) { in wacom_bpt_pen()
2043 wacom->tool[0] = BTN_TOOL_RUBBER; in wacom_bpt_pen()
2044 wacom->id[0] = ERASER_DEVICE_ID; in wacom_bpt_pen()
2046 wacom->tool[0] = BTN_TOOL_PEN; in wacom_bpt_pen()
2047 wacom->id[0] = STYLUS_DEVICE_ID; in wacom_bpt_pen()
2051 wacom->shared->stylus_in_proximity = prox; in wacom_bpt_pen()
2052 if (wacom->shared->touch_down) in wacom_bpt_pen()
2072 wacom->id[0] = 0; in wacom_bpt_pen()
2084 input_report_key(input, wacom->tool[0], prox); /* PEN or RUBBER */ in wacom_bpt_pen()
2085 input_report_abs(input, ABS_MISC, wacom->id[0]); /* TOOL ID */ in wacom_bpt_pen()
2090 static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len) in wacom_bpt_irq() argument
2092 struct wacom_features *features = &wacom->features; in wacom_bpt_irq()
2096 return wacom_intuos_irq(wacom); in wacom_bpt_irq()
2098 return wacom_bpt_touch(wacom); in wacom_bpt_irq()
2100 return wacom_bpt3_touch(wacom); in wacom_bpt_irq()
2102 return wacom_bpt_pen(wacom); in wacom_bpt_irq()
2107 static void wacom_bamboo_pad_pen_event(struct wacom_wac *wacom, in wacom_bamboo_pad_pen_event() argument
2127 hid_input_report(wacom->shared->pen, HID_INPUT_REPORT, data, in wacom_bamboo_pad_pen_event()
2133 static int wacom_bamboo_pad_touch_event(struct wacom_wac *wacom, in wacom_bamboo_pad_touch_event() argument
2136 struct input_dev *input = wacom->touch_input; in wacom_bamboo_pad_touch_event()
2144 for (id = 0; id < wacom->features.touch_max; id++) { in wacom_bamboo_pad_touch_event()
2146 !wacom->shared->stylus_in_proximity; in wacom_bamboo_pad_touch_event()
2168 wacom->shared->touch_down = !!prefix && in wacom_bamboo_pad_touch_event()
2169 !wacom->shared->stylus_in_proximity; in wacom_bamboo_pad_touch_event()
2174 static int wacom_bamboo_pad_irq(struct wacom_wac *wacom, size_t len) in wacom_bamboo_pad_irq() argument
2176 unsigned char *data = wacom->data; in wacom_bamboo_pad_irq()
2184 wacom_bamboo_pad_pen_event(wacom, &data[1]); in wacom_bamboo_pad_irq()
2187 return wacom_bamboo_pad_touch_event(wacom, &data[9]); in wacom_bamboo_pad_irq()
2192 static int wacom_wireless_irq(struct wacom_wac *wacom, size_t len) in wacom_wireless_irq() argument
2194 unsigned char *data = wacom->data; in wacom_wireless_irq()
2204 if ((wacom->shared->type == INTUOSHT || in wacom_wireless_irq()
2205 wacom->shared->type == INTUOSHT2) && in wacom_wireless_irq()
2206 wacom->shared->touch_input && in wacom_wireless_irq()
2207 wacom->shared->touch_max) { in wacom_wireless_irq()
2208 input_report_switch(wacom->shared->touch_input, in wacom_wireless_irq()
2210 input_sync(wacom->shared->touch_input); in wacom_wireless_irq()
2216 if (wacom->pid != pid) { in wacom_wireless_irq()
2217 wacom->pid = pid; in wacom_wireless_irq()
2218 wacom_schedule_work(wacom); in wacom_wireless_irq()
2221 if (wacom->shared->type) in wacom_wireless_irq()
2222 wacom_notify_battery(wacom, battery, charging, 1, 0); in wacom_wireless_irq()
2224 } else if (wacom->pid != 0) { in wacom_wireless_irq()
2226 wacom->pid = 0; in wacom_wireless_irq()
2227 wacom_schedule_work(wacom); in wacom_wireless_irq()
2228 wacom_notify_battery(wacom, 0, 0, 0, 0); in wacom_wireless_irq()
2236 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_status_irq() local
2259 if (!wacom->battery && in wacom_status_irq()
2262 INIT_WORK(&wacom->work, wacom_battery_work); in wacom_status_irq()
2267 wacom->battery) { in wacom_status_irq()
2269 INIT_WORK(&wacom->work, wacom_battery_work); in wacom_status_irq()
2455 void wacom_setup_device_quirks(struct wacom *wacom) in wacom_setup_device_quirks() argument
2457 struct wacom_features *features = &wacom->wacom_wac.features; in wacom_setup_device_quirks()
2519 if (wacom->hdev->bus == BUS_BLUETOOTH) in wacom_setup_device_quirks()