Lines Matching refs:wacom_wac
48 static void wacom_notify_battery(struct wacom_wac *wacom_wac, in wacom_notify_battery() argument
52 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_notify_battery()
53 bool changed = wacom_wac->battery_capacity != bat_capacity || in wacom_notify_battery()
54 wacom_wac->bat_charging != bat_charging || in wacom_notify_battery()
55 wacom_wac->bat_connected != bat_connected || in wacom_notify_battery()
56 wacom_wac->ps_connected != ps_connected; in wacom_notify_battery()
59 wacom_wac->battery_capacity = bat_capacity; in wacom_notify_battery()
60 wacom_wac->bat_charging = bat_charging; in wacom_notify_battery()
61 wacom_wac->bat_connected = bat_connected; in wacom_notify_battery()
62 wacom_wac->ps_connected = ps_connected; in wacom_notify_battery()
69 static int wacom_penpartner_irq(struct wacom_wac *wacom) in wacom_penpartner_irq()
113 static int wacom_pl_irq(struct wacom_wac *wacom) in wacom_pl_irq()
172 static int wacom_ptu_irq(struct wacom_wac *wacom) in wacom_ptu_irq()
201 static int wacom_dtu_irq(struct wacom_wac *wacom) in wacom_dtu_irq()
231 static int wacom_dtus_irq(struct wacom_wac *wacom) in wacom_dtus_irq()
282 static int wacom_graphire_irq(struct wacom_wac *wacom) in wacom_graphire_irq()
436 static void wacom_intuos_schedule_prox_event(struct wacom_wac *wacom_wac) in wacom_intuos_schedule_prox_event() argument
438 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_intuos_schedule_prox_event()
449 static int wacom_intuos_inout(struct wacom_wac *wacom) in wacom_intuos_inout()
634 static int wacom_remote_irq(struct wacom_wac *wacom_wac, size_t len) in wacom_remote_irq() argument
636 unsigned char *data = wacom_wac->data; in wacom_remote_irq()
637 struct input_dev *input = wacom_wac->pad_input; in wacom_remote_irq()
638 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_remote_irq()
639 struct wacom_features *features = &wacom_wac->features; in wacom_remote_irq()
651 wacom_wac->id[0] = PAD_DEVICE_ID; in wacom_remote_irq()
693 if (wacom_wac->serial[i] == serial) in wacom_remote_irq()
701 wacom_schedule_work(wacom_wac); in wacom_remote_irq()
704 wacom_notify_battery(wacom_wac, bat_percent, bat_charging, 1, in wacom_remote_irq()
710 static int wacom_remote_status_irq(struct wacom_wac *wacom_wac, size_t len) in wacom_remote_status_irq() argument
712 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_remote_status_irq()
713 unsigned char *data = wacom_wac->data; in wacom_remote_status_irq()
727 if (wacom_wac->serial[i] == serial) in wacom_remote_status_irq()
730 if (wacom_wac->serial[i]) { in wacom_remote_status_irq()
732 wacom_wac->serial[i]); in wacom_remote_status_irq()
739 if (wacom_wac->serial[k] == serial) in wacom_remote_status_irq()
744 wacom_wac->serial[i] = serial; in wacom_remote_status_irq()
749 } else if (wacom_wac->serial[i]) { in wacom_remote_status_irq()
751 wacom_wac->serial[i]); in wacom_remote_status_irq()
758 static void wacom_intuos_general(struct wacom_wac *wacom) in wacom_intuos_general()
792 static int wacom_intuos_irq(struct wacom_wac *wacom) in wacom_intuos_irq()
1156 static void wacom_intuos_bt_process_data(struct wacom_wac *wacom, 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()
1202 static int wacom_wac_finger_count_touches(struct wacom_wac *wacom) in wacom_wac_finger_count_touches()
1226 static int wacom_24hdt_irq(struct wacom_wac *wacom) in wacom_24hdt_irq()
1294 static int wacom_mt_touch(struct wacom_wac *wacom) in wacom_mt_touch()
1345 static int wacom_tpc_mt_touch(struct wacom_wac *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()
1409 static int wacom_tpc_pen(struct wacom_wac *wacom) in wacom_tpc_pen()
1437 static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len) in wacom_tpc_irq()
1508 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_pen_usage_mapping() local
1509 struct input_dev *input = wacom_wac->pen_input; in wacom_wac_pen_usage_mapping()
1548 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_pen_event() local
1549 struct input_dev *input = wacom_wac->pen_input; in wacom_wac_pen_event()
1554 wacom_wac->hid_data.inrange_state = value; in wacom_wac_pen_event()
1557 wacom_wac->hid_data.invert_state = value; in wacom_wac_pen_event()
1561 wacom_wac->hid_data.tipswitch |= value; in wacom_wac_pen_event()
1566 if (!usage->type || wacom_wac->shared->touch_down) in wacom_wac_pen_event()
1584 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_pen_report() local
1585 struct input_dev *input = wacom_wac->pen_input; in wacom_wac_pen_report()
1586 bool prox = wacom_wac->hid_data.inrange_state; in wacom_wac_pen_report()
1588 if (!wacom_wac->shared->stylus_in_proximity) /* first in prox */ in wacom_wac_pen_report()
1590 wacom_wac->tool[0] = wacom_wac->hid_data.invert_state ? in wacom_wac_pen_report()
1594 wacom_wac->shared->stylus_in_proximity = prox; in wacom_wac_pen_report()
1597 if (!wacom_wac->shared->touch_down) { in wacom_wac_pen_report()
1599 wacom_wac->hid_data.tipswitch); in wacom_wac_pen_report()
1600 input_report_key(input, wacom_wac->tool[0], prox); in wacom_wac_pen_report()
1602 wacom_wac->hid_data.tipswitch = false; in wacom_wac_pen_report()
1612 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_usage_mapping() local
1613 struct wacom_features *features = &wacom_wac->features; in wacom_wac_finger_usage_mapping()
1614 struct input_dev *input = wacom_wac->touch_input; in wacom_wac_finger_usage_mapping()
1615 unsigned touch_max = wacom_wac->features.touch_max; in wacom_wac_finger_usage_mapping()
1655 wacom_wac->hid_data.cc_report = field->report->id; in wacom_wac_finger_usage_mapping()
1656 wacom_wac->hid_data.cc_index = field->index; in wacom_wac_finger_usage_mapping()
1657 wacom_wac->hid_data.cc_value_index = usage->usage_index; in wacom_wac_finger_usage_mapping()
1662 static void wacom_wac_finger_slot(struct wacom_wac *wacom_wac, in wacom_wac_finger_slot() argument
1665 struct hid_data *hid_data = &wacom_wac->hid_data; in wacom_wac_finger_slot()
1666 bool mt = wacom_wac->features.touch_max > 1; in wacom_wac_finger_slot()
1668 !wacom_wac->shared->stylus_in_proximity; in wacom_wac_finger_slot()
1670 wacom_wac->hid_data.num_received++; in wacom_wac_finger_slot()
1671 if (wacom_wac->hid_data.num_received > wacom_wac->hid_data.num_expected) in wacom_wac_finger_slot()
1704 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_event() local
1708 wacom_wac->hid_data.x = value; in wacom_wac_finger_event()
1711 wacom_wac->hid_data.y = value; in wacom_wac_finger_event()
1714 wacom_wac->hid_data.width = value; in wacom_wac_finger_event()
1717 wacom_wac->hid_data.height = value; in wacom_wac_finger_event()
1720 wacom_wac->hid_data.id = value; in wacom_wac_finger_event()
1723 wacom_wac->hid_data.tipswitch = value; in wacom_wac_finger_event()
1729 if (usage->hid == wacom_wac->features.last_slot_field) in wacom_wac_finger_event()
1730 wacom_wac_finger_slot(wacom_wac, wacom_wac->touch_input); in wacom_wac_finger_event()
1740 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_pre_report() local
1741 struct hid_data* hid_data = &wacom_wac->hid_data; in wacom_wac_finger_pre_report()
1775 hid_data->num_expected = wacom_wac->features.touch_max; in wacom_wac_finger_pre_report()
1783 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_finger_report() local
1784 struct input_dev *input = wacom_wac->touch_input; in wacom_wac_finger_report()
1785 unsigned touch_max = wacom_wac->features.touch_max; in wacom_wac_finger_report()
1791 if (wacom_wac->hid_data.num_received < wacom_wac->hid_data.num_expected) in wacom_wac_finger_report()
1798 wacom_wac->hid_data.num_received = 0; in wacom_wac_finger_report()
1801 wacom_wac->shared->touch_down = wacom_wac_finger_count_touches(wacom_wac); in wacom_wac_finger_report()
1808 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_usage_mapping() local
1811 __set_bit(INPUT_PROP_DIRECT, wacom_wac->pen_input->propbit); in wacom_wac_usage_mapping()
1812 __set_bit(INPUT_PROP_DIRECT, wacom_wac->touch_input->propbit); in wacom_wac_usage_mapping()
1826 if (wacom->wacom_wac.features.type != HID_GENERIC) in wacom_wac_event()
1860 struct wacom_wac *wacom_wac = &wacom->wacom_wac; in wacom_wac_report() local
1863 if (wacom_wac->features.type != HID_GENERIC) in wacom_wac_report()
1881 static int wacom_bpt_touch(struct wacom_wac *wacom) in wacom_bpt_touch()
1929 static void wacom_bpt3_touch_msg(struct wacom_wac *wacom, unsigned char *data) in wacom_bpt3_touch_msg()
1972 static void wacom_bpt3_button_msg(struct wacom_wac *wacom, unsigned char *data) in wacom_bpt3_button_msg()
1988 static int wacom_bpt3_touch(struct wacom_wac *wacom) in wacom_bpt3_touch()
2019 static int wacom_bpt_pen(struct wacom_wac *wacom) in wacom_bpt_pen()
2090 static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len) in wacom_bpt_irq()
2107 static void wacom_bamboo_pad_pen_event(struct wacom_wac *wacom, in wacom_bamboo_pad_pen_event()
2133 static int wacom_bamboo_pad_touch_event(struct wacom_wac *wacom, 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()
2192 static int wacom_wireless_irq(struct wacom_wac *wacom, size_t len) in wacom_wireless_irq()
2234 static int wacom_status_irq(struct wacom_wac *wacom_wac, size_t len) in wacom_status_irq() argument
2236 struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac); in wacom_status_irq()
2237 struct wacom_features *features = &wacom_wac->features; in wacom_status_irq()
2238 unsigned char *data = wacom_wac->data; in wacom_status_irq()
2245 wacom_wac->shared->touch_input && in wacom_status_irq()
2247 input_report_switch(wacom_wac->shared->touch_input, in wacom_status_irq()
2249 input_sync(wacom_wac->shared->touch_input); in wacom_status_irq()
2256 wacom_notify_battery(wacom_wac, battery, charging, in wacom_status_irq()
2263 wacom_schedule_work(wacom_wac); in wacom_status_irq()
2270 wacom_schedule_work(wacom_wac); in wacom_status_irq()
2271 wacom_notify_battery(wacom_wac, 0, 0, 0, 0); in wacom_status_irq()
2276 void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len) in wacom_wac_irq() argument
2280 switch (wacom_wac->features.type) { in wacom_wac_irq()
2282 sync = wacom_penpartner_irq(wacom_wac); in wacom_wac_irq()
2286 sync = wacom_pl_irq(wacom_wac); in wacom_wac_irq()
2293 sync = wacom_graphire_irq(wacom_wac); in wacom_wac_irq()
2297 sync = wacom_ptu_irq(wacom_wac); in wacom_wac_irq()
2301 sync = wacom_dtu_irq(wacom_wac); in wacom_wac_irq()
2306 sync = wacom_dtus_irq(wacom_wac); in wacom_wac_irq()
2326 sync = wacom_intuos_irq(wacom_wac); in wacom_wac_irq()
2330 sync = wacom_intuos_bt_irq(wacom_wac, len); in wacom_wac_irq()
2335 sync = wacom_24hdt_irq(wacom_wac); in wacom_wac_irq()
2345 sync = wacom_bpt3_touch(wacom_wac); in wacom_wac_irq()
2346 else if (wacom_wac->data[0] == WACOM_REPORT_USB) in wacom_wac_irq()
2347 sync = wacom_status_irq(wacom_wac, len); in wacom_wac_irq()
2349 sync = wacom_intuos_irq(wacom_wac); in wacom_wac_irq()
2358 sync = wacom_tpc_irq(wacom_wac, len); in wacom_wac_irq()
2366 if (wacom_wac->data[0] == WACOM_REPORT_USB) in wacom_wac_irq()
2367 sync = wacom_status_irq(wacom_wac, len); in wacom_wac_irq()
2369 sync = wacom_bpt_irq(wacom_wac, len); in wacom_wac_irq()
2373 sync = wacom_bamboo_pad_irq(wacom_wac, len); in wacom_wac_irq()
2377 sync = wacom_wireless_irq(wacom_wac, len); in wacom_wac_irq()
2381 if (wacom_wac->data[0] == WACOM_REPORT_DEVICE_LIST) in wacom_wac_irq()
2382 sync = wacom_remote_status_irq(wacom_wac, len); in wacom_wac_irq()
2384 sync = wacom_remote_irq(wacom_wac, len); in wacom_wac_irq()
2393 if (wacom_wac->pen_input) in wacom_wac_irq()
2394 input_sync(wacom_wac->pen_input); in wacom_wac_irq()
2395 if (wacom_wac->touch_input) in wacom_wac_irq()
2396 input_sync(wacom_wac->touch_input); in wacom_wac_irq()
2397 if (wacom_wac->pad_input) in wacom_wac_irq()
2398 input_sync(wacom_wac->pad_input); in wacom_wac_irq()
2402 static void wacom_setup_basic_pro_pen(struct wacom_wac *wacom_wac) in wacom_setup_basic_pro_pen() argument
2404 struct input_dev *input_dev = wacom_wac->pen_input; in wacom_setup_basic_pro_pen()
2413 0, wacom_wac->features.distance_max, 0, 0); in wacom_setup_basic_pro_pen()
2416 static void wacom_setup_cintiq(struct wacom_wac *wacom_wac) in wacom_setup_cintiq() argument
2418 struct input_dev *input_dev = wacom_wac->pen_input; in wacom_setup_cintiq()
2420 wacom_setup_basic_pro_pen(wacom_wac); in wacom_setup_cintiq()
2434 static void wacom_setup_intuos(struct wacom_wac *wacom_wac) in wacom_setup_intuos() argument
2436 struct input_dev *input_dev = wacom_wac->pen_input; in wacom_setup_intuos()
2440 wacom_setup_cintiq(wacom_wac); in wacom_setup_intuos()
2457 struct wacom_features *features = &wacom->wacom_wac.features; in wacom_setup_device_quirks()
2540 struct wacom_wac *wacom_wac) in wacom_setup_pen_input_capabilities() argument
2542 struct wacom_features *features = &wacom_wac->features; in wacom_setup_pen_input_capabilities()
2608 wacom_setup_cintiq(wacom_wac); in wacom_setup_pen_input_capabilities()
2625 wacom_setup_intuos(wacom_wac); in wacom_setup_pen_input_capabilities()
2643 wacom_setup_intuos(wacom_wac); in wacom_setup_pen_input_capabilities()
2688 wacom_setup_basic_pro_pen(wacom_wac); in wacom_setup_pen_input_capabilities()
2708 struct wacom_wac *wacom_wac) in wacom_setup_touch_input_capabilities() argument
2710 struct wacom_features *features = &wacom_wac->features; in wacom_setup_touch_input_capabilities()
2821 struct wacom_wac *wacom_wac) in wacom_setup_pad_input_capabilities() argument
2823 struct wacom_features *features = &wacom_wac->features; in wacom_setup_pad_input_capabilities()