wacom             113 drivers/hid/wacom.h struct wacom;
wacom             118 drivers/hid/wacom.h 	struct wacom *wacom;
wacom             134 drivers/hid/wacom.h 	struct wacom *wacom;
wacom             187 drivers/hid/wacom.h 	struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac);
wacom             191 drivers/hid/wacom.h 		schedule_work(&wacom->wireless_work);
wacom             194 drivers/hid/wacom.h 		schedule_work(&wacom->battery_work);
wacom             197 drivers/hid/wacom.h 		schedule_work(&wacom->remote_work);
wacom             200 drivers/hid/wacom.h 		schedule_work(&wacom->mode_change_work);
wacom             223 drivers/hid/wacom.h void wacom_setup_device_quirks(struct wacom *wacom);
wacom             237 drivers/hid/wacom.h struct wacom_led *wacom_led_find(struct wacom *wacom, unsigned int group,
wacom             239 drivers/hid/wacom.h struct wacom_led *wacom_led_next(struct wacom *wacom, struct wacom_led *cur);
wacom             241 drivers/hid/wacom.h int wacom_initialize_leds(struct wacom *wacom);
wacom              93 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom              94 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom             161 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             169 drivers/hid/wacom_sys.c 	memcpy(wacom->wacom_wac.data, raw_data, size);
wacom             171 drivers/hid/wacom_sys.c 	wacom_wac_irq(&wacom->wacom_wac, size);
wacom             178 drivers/hid/wacom_sys.c 	struct wacom *wacom = input_get_drvdata(dev);
wacom             180 drivers/hid/wacom_sys.c 	return hid_hw_open(wacom->hdev);
wacom             185 drivers/hid/wacom_sys.c 	struct wacom *wacom = input_get_drvdata(dev);
wacom             191 drivers/hid/wacom_sys.c 	if (wacom->hdev)
wacom             192 drivers/hid/wacom_sys.c 		hid_hw_close(wacom->hdev);
wacom             214 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             215 drivers/hid/wacom_sys.c 	struct wacom_features *features = &wacom->wacom_wac.features;
wacom             225 drivers/hid/wacom_sys.c 		wacom->wacom_wac.mode_report = field->report->id;
wacom             226 drivers/hid/wacom_sys.c 		wacom->wacom_wac.mode_value = 2;
wacom             297 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             298 drivers/hid/wacom_sys.c 	struct wacom_features *features = &wacom->wacom_wac.features;
wacom             299 drivers/hid/wacom_sys.c 	struct hid_data *hid_data = &wacom->wacom_wac.hid_data;
wacom             309 drivers/hid/wacom_sys.c 		wacom->generic_has_leds = true;
wacom             352 drivers/hid/wacom_sys.c 			wacom->wacom_wac.mode_report = field->report->id;
wacom             353 drivers/hid/wacom_sys.c 			wacom->wacom_wac.mode_value = 0;
wacom             358 drivers/hid/wacom_sys.c 		wacom->wacom_wac.mode_report = field->report->id;
wacom             359 drivers/hid/wacom_sys.c 		wacom->wacom_wac.mode_value = 2;
wacom             367 drivers/hid/wacom_sys.c 			wacom->wacom_wac.mode_report = field->report->id;
wacom             368 drivers/hid/wacom_sys.c 			wacom->wacom_wac.mode_value = 0;
wacom             430 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             431 drivers/hid/wacom_sys.c 	struct wacom_features *features = &wacom->wacom_wac.features;
wacom             486 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             487 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom             551 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             552 drivers/hid/wacom_sys.c 	struct hid_data *hid_data = &wacom->wacom_wac.hid_data;
wacom             612 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             631 drivers/hid/wacom_sys.c 				wacom->wacom_wac.bt_high_speed = speed;
wacom             645 drivers/hid/wacom_sys.c 			wacom->wacom_wac.bt_features &= ~0x20;
wacom             647 drivers/hid/wacom_sys.c 			wacom->wacom_wac.bt_features |= 0x20;
wacom             650 drivers/hid/wacom_sys.c 		rep_data[1] = wacom->wacom_wac.bt_features;
wacom             655 drivers/hid/wacom_sys.c 			wacom->wacom_wac.bt_high_speed = speed;
wacom             669 drivers/hid/wacom_sys.c static int _wacom_query_tablet_data(struct wacom *wacom)
wacom             671 drivers/hid/wacom_sys.c 	struct hid_device *hdev = wacom->hdev;
wacom             672 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom             713 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             714 drivers/hid/wacom_sys.c 	struct usb_interface *intf = wacom->intf;
wacom             753 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             754 drivers/hid/wacom_sys.c 	struct wacom_features *features = &wacom->wacom_wac.features;
wacom             755 drivers/hid/wacom_sys.c 	struct wacom *sibling_wacom = hid_get_drvdata(sibling);
wacom             853 drivers/hid/wacom_sys.c 	struct wacom *wacom = res;
wacom             855 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom             861 drivers/hid/wacom_sys.c 		if (wacom_wac->shared->touch == wacom->hdev)
wacom             863 drivers/hid/wacom_sys.c 		else if (wacom_wac->shared->pen == wacom->hdev)
wacom             873 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom             874 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom             895 drivers/hid/wacom_sys.c 	retval = devm_add_action(&hdev->dev, wacom_remove_shared_data, wacom);
wacom             898 drivers/hid/wacom_sys.c 		wacom_remove_shared_data(wacom);
wacom             912 drivers/hid/wacom_sys.c static int wacom_led_control(struct wacom *wacom)
wacom             919 drivers/hid/wacom_sys.c 	if (!wacom->led.groups)
wacom             922 drivers/hid/wacom_sys.c 	if (wacom->wacom_wac.features.type == REMOTE)
wacom             925 drivers/hid/wacom_sys.c 	if (wacom->wacom_wac.pid) { /* wireless connected */
wacom             929 drivers/hid/wacom_sys.c 	else if (wacom->wacom_wac.features.type == INTUOSP2_BT) {
wacom             937 drivers/hid/wacom_sys.c 	if (wacom->wacom_wac.features.type == HID_GENERIC) {
wacom             939 drivers/hid/wacom_sys.c 		buf[1] = wacom->led.llv;
wacom             940 drivers/hid/wacom_sys.c 		buf[2] = wacom->led.groups[0].select & 0x03;
wacom             942 drivers/hid/wacom_sys.c 	} else if ((wacom->wacom_wac.features.type >= INTUOS5S &&
wacom             943 drivers/hid/wacom_sys.c 	    wacom->wacom_wac.features.type <= INTUOSPL)) {
wacom             949 drivers/hid/wacom_sys.c 		int ring_led = wacom->led.groups[0].select & 0x03;
wacom             950 drivers/hid/wacom_sys.c 		int ring_lum = (((wacom->led.llv & 0x60) >> 5) - 1) & 0x03;
wacom             955 drivers/hid/wacom_sys.c 		if (wacom->wacom_wac.pid) {
wacom             956 drivers/hid/wacom_sys.c 			wacom_get_report(wacom->hdev, HID_FEATURE_REPORT,
wacom             963 drivers/hid/wacom_sys.c 	else if (wacom->wacom_wac.features.type == INTUOSP2_BT) {
wacom             970 drivers/hid/wacom_sys.c 		buf[9] = wacom->led.llv;
wacom             971 drivers/hid/wacom_sys.c 		buf[10] = wacom->led.groups[0].select & 0x03;
wacom             974 drivers/hid/wacom_sys.c 		int led = wacom->led.groups[0].select | 0x4;
wacom             976 drivers/hid/wacom_sys.c 		if (wacom->wacom_wac.features.type == WACOM_21UX2 ||
wacom             977 drivers/hid/wacom_sys.c 		    wacom->wacom_wac.features.type == WACOM_24HD)
wacom             978 drivers/hid/wacom_sys.c 			led |= (wacom->led.groups[1].select << 4) | 0x40;
wacom             982 drivers/hid/wacom_sys.c 		buf[2] = wacom->led.llv;
wacom             983 drivers/hid/wacom_sys.c 		buf[3] = wacom->led.hlv;
wacom             984 drivers/hid/wacom_sys.c 		buf[4] = wacom->led.img_lum;
wacom             987 drivers/hid/wacom_sys.c 	retval = wacom_set_report(wacom->hdev, HID_FEATURE_REPORT, buf, buf_size,
wacom             994 drivers/hid/wacom_sys.c static int wacom_led_putimage(struct wacom *wacom, int button_id, u8 xfer_id,
wacom            1008 drivers/hid/wacom_sys.c 	retval = wacom_set_report(wacom->hdev, HID_FEATURE_REPORT, buf, 2,
wacom            1019 drivers/hid/wacom_sys.c 		retval = wacom_set_report(wacom->hdev, HID_FEATURE_REPORT,
wacom            1028 drivers/hid/wacom_sys.c 	wacom_set_report(wacom->hdev, HID_FEATURE_REPORT, buf, 2,
wacom            1040 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1048 drivers/hid/wacom_sys.c 	mutex_lock(&wacom->lock);
wacom            1050 drivers/hid/wacom_sys.c 	wacom->led.groups[set_id].select = id & 0x3;
wacom            1051 drivers/hid/wacom_sys.c 	err = wacom_led_control(wacom);
wacom            1053 drivers/hid/wacom_sys.c 	mutex_unlock(&wacom->lock);
wacom            1068 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);			\
wacom            1070 drivers/hid/wacom_sys.c 			 wacom->led.groups[SET_ID].select);		\
wacom            1079 drivers/hid/wacom_sys.c static ssize_t wacom_luminance_store(struct wacom *wacom, u8 *dest,
wacom            1089 drivers/hid/wacom_sys.c 	mutex_lock(&wacom->lock);
wacom            1092 drivers/hid/wacom_sys.c 	err = wacom_led_control(wacom);
wacom            1094 drivers/hid/wacom_sys.c 	mutex_unlock(&wacom->lock);
wacom            1104 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);			\
wacom            1106 drivers/hid/wacom_sys.c 	return wacom_luminance_store(wacom, &wacom->led.field,		\
wacom            1112 drivers/hid/wacom_sys.c 	struct wacom *wacom = dev_get_drvdata(dev);			\
wacom            1113 drivers/hid/wacom_sys.c 	return scnprintf(buf, PAGE_SIZE, "%d\n", wacom->led.field);	\
wacom            1127 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1143 drivers/hid/wacom_sys.c 	mutex_lock(&wacom->lock);
wacom            1145 drivers/hid/wacom_sys.c 	err = wacom_led_putimage(wacom, button_id, xfer_id, len, buf);
wacom            1147 drivers/hid/wacom_sys.c 	mutex_unlock(&wacom->lock);
wacom            1239 drivers/hid/wacom_sys.c static int __wacom_devm_sysfs_create_group(struct wacom *wacom,
wacom            1261 drivers/hid/wacom_sys.c 	devres_add(&wacom->hdev->dev, devres);
wacom            1266 drivers/hid/wacom_sys.c static int wacom_devm_sysfs_create_group(struct wacom *wacom,
wacom            1269 drivers/hid/wacom_sys.c 	return __wacom_devm_sysfs_create_group(wacom, &wacom->hdev->dev.kobj,
wacom            1275 drivers/hid/wacom_sys.c 	struct wacom *wacom = led->wacom;
wacom            1277 drivers/hid/wacom_sys.c 	if (wacom->led.max_hlv)
wacom            1278 drivers/hid/wacom_sys.c 		return led->hlv * LED_FULL / wacom->led.max_hlv;
wacom            1280 drivers/hid/wacom_sys.c 	if (wacom->led.max_llv)
wacom            1281 drivers/hid/wacom_sys.c 		return led->llv * LED_FULL / wacom->led.max_llv;
wacom            1290 drivers/hid/wacom_sys.c 	struct wacom *wacom = led->wacom;
wacom            1292 drivers/hid/wacom_sys.c 	if (wacom->led.groups[led->group].select != led->id)
wacom            1302 drivers/hid/wacom_sys.c 	struct wacom *wacom = led->wacom;
wacom            1305 drivers/hid/wacom_sys.c 	mutex_lock(&wacom->lock);
wacom            1307 drivers/hid/wacom_sys.c 	if (!wacom->led.groups || (brightness == LED_OFF &&
wacom            1308 drivers/hid/wacom_sys.c 	    wacom->led.groups[led->group].select != led->id)) {
wacom            1313 drivers/hid/wacom_sys.c 	led->llv = wacom->led.llv = wacom->led.max_llv * brightness / LED_FULL;
wacom            1314 drivers/hid/wacom_sys.c 	led->hlv = wacom->led.hlv = wacom->led.max_hlv * brightness / LED_FULL;
wacom            1316 drivers/hid/wacom_sys.c 	wacom->led.groups[led->group].select = led->id;
wacom            1318 drivers/hid/wacom_sys.c 	error = wacom_led_control(wacom);
wacom            1321 drivers/hid/wacom_sys.c 	mutex_unlock(&wacom->lock);
wacom            1331 drivers/hid/wacom_sys.c static int wacom_led_register_one(struct device *dev, struct wacom *wacom,
wacom            1350 drivers/hid/wacom_sys.c 			hid_err(wacom->hdev,
wacom            1359 drivers/hid/wacom_sys.c 	led->wacom = wacom;
wacom            1360 drivers/hid/wacom_sys.c 	led->llv = wacom->led.llv;
wacom            1361 drivers/hid/wacom_sys.c 	led->hlv = wacom->led.hlv;
wacom            1375 drivers/hid/wacom_sys.c 		hid_err(wacom->hdev,
wacom            1393 drivers/hid/wacom_sys.c 						   struct wacom *wacom,
wacom            1400 drivers/hid/wacom_sys.c 	if (group_id >= wacom->led.count || count <= 0)
wacom            1403 drivers/hid/wacom_sys.c 	if (!devres_open_group(dev, &wacom->led.groups[group_id], GFP_KERNEL))
wacom            1412 drivers/hid/wacom_sys.c 	wacom->led.groups[group_id].leds = leds;
wacom            1413 drivers/hid/wacom_sys.c 	wacom->led.groups[group_id].count = count;
wacom            1416 drivers/hid/wacom_sys.c 		error = wacom_led_register_one(dev, wacom, &leds[i],
wacom            1422 drivers/hid/wacom_sys.c 	wacom->led.groups[group_id].dev = dev;
wacom            1424 drivers/hid/wacom_sys.c 	devres_close_group(dev, &wacom->led.groups[group_id]);
wacom            1435 drivers/hid/wacom_sys.c 	error = devm_add_action_or_reset(&wacom->hdev->dev,
wacom            1437 drivers/hid/wacom_sys.c 					 &wacom->led.groups[group_id]);
wacom            1444 drivers/hid/wacom_sys.c 	devres_release_group(dev, &wacom->led.groups[group_id]);
wacom            1448 drivers/hid/wacom_sys.c struct wacom_led *wacom_led_find(struct wacom *wacom, unsigned int group_id,
wacom            1453 drivers/hid/wacom_sys.c 	if (group_id >= wacom->led.count)
wacom            1456 drivers/hid/wacom_sys.c 	group = &wacom->led.groups[group_id];
wacom            1472 drivers/hid/wacom_sys.c struct wacom_led *wacom_led_next(struct wacom *wacom, struct wacom_led *cur)
wacom            1477 drivers/hid/wacom_sys.c 	if (!wacom || !cur)
wacom            1484 drivers/hid/wacom_sys.c 		next_led = wacom_led_find(wacom, group, ++next);
wacom            1494 drivers/hid/wacom_sys.c 	struct wacom *wacom = data;
wacom            1496 drivers/hid/wacom_sys.c 	wacom->led.groups = NULL;
wacom            1497 drivers/hid/wacom_sys.c 	wacom->led.count = 0;
wacom            1500 drivers/hid/wacom_sys.c static int wacom_led_groups_allocate(struct wacom *wacom, int count)
wacom            1502 drivers/hid/wacom_sys.c 	struct device *dev = &wacom->hdev->dev;
wacom            1511 drivers/hid/wacom_sys.c 	error = devm_add_action_or_reset(dev, wacom_led_groups_release, wacom);
wacom            1515 drivers/hid/wacom_sys.c 	wacom->led.groups = groups;
wacom            1516 drivers/hid/wacom_sys.c 	wacom->led.count = count;
wacom            1521 drivers/hid/wacom_sys.c static int wacom_leds_alloc_and_register(struct wacom *wacom, int group_count,
wacom            1527 drivers/hid/wacom_sys.c 	if (!wacom->wacom_wac.pad_input)
wacom            1530 drivers/hid/wacom_sys.c 	dev = &wacom->wacom_wac.pad_input->dev;
wacom            1532 drivers/hid/wacom_sys.c 	error = wacom_led_groups_allocate(wacom, group_count);
wacom            1537 drivers/hid/wacom_sys.c 		error = wacom_led_groups_alloc_and_register_one(dev, wacom, i,
wacom            1547 drivers/hid/wacom_sys.c int wacom_initialize_leds(struct wacom *wacom)
wacom            1551 drivers/hid/wacom_sys.c 	if (!(wacom->wacom_wac.features.device_type & WACOM_DEVICETYPE_PAD))
wacom            1555 drivers/hid/wacom_sys.c 	switch (wacom->wacom_wac.features.type) {
wacom            1557 drivers/hid/wacom_sys.c 		if (!wacom->generic_has_leds)
wacom            1559 drivers/hid/wacom_sys.c 		wacom->led.llv = 100;
wacom            1560 drivers/hid/wacom_sys.c 		wacom->led.max_llv = 100;
wacom            1562 drivers/hid/wacom_sys.c 		error = wacom_leds_alloc_and_register(wacom, 1, 4, false);
wacom            1564 drivers/hid/wacom_sys.c 			hid_err(wacom->hdev,
wacom            1569 drivers/hid/wacom_sys.c 		error = wacom_devm_sysfs_create_group(wacom,
wacom            1577 drivers/hid/wacom_sys.c 		wacom->led.llv = 10;
wacom            1578 drivers/hid/wacom_sys.c 		wacom->led.hlv = 20;
wacom            1579 drivers/hid/wacom_sys.c 		wacom->led.max_llv = 127;
wacom            1580 drivers/hid/wacom_sys.c 		wacom->led.max_hlv = 127;
wacom            1581 drivers/hid/wacom_sys.c 		wacom->led.img_lum = 10;
wacom            1583 drivers/hid/wacom_sys.c 		error = wacom_leds_alloc_and_register(wacom, 1, 4, false);
wacom            1585 drivers/hid/wacom_sys.c 			hid_err(wacom->hdev,
wacom            1590 drivers/hid/wacom_sys.c 		error = wacom_devm_sysfs_create_group(wacom,
wacom            1596 drivers/hid/wacom_sys.c 		wacom->led.llv = 0;
wacom            1597 drivers/hid/wacom_sys.c 		wacom->led.hlv = 0;
wacom            1598 drivers/hid/wacom_sys.c 		wacom->led.img_lum = 0;
wacom            1600 drivers/hid/wacom_sys.c 		error = wacom_leds_alloc_and_register(wacom, 2, 4, false);
wacom            1602 drivers/hid/wacom_sys.c 			hid_err(wacom->hdev,
wacom            1607 drivers/hid/wacom_sys.c 		error = wacom_devm_sysfs_create_group(wacom,
wacom            1617 drivers/hid/wacom_sys.c 		wacom->led.llv = 32;
wacom            1618 drivers/hid/wacom_sys.c 		wacom->led.max_llv = 96;
wacom            1620 drivers/hid/wacom_sys.c 		error = wacom_leds_alloc_and_register(wacom, 1, 4, false);
wacom            1622 drivers/hid/wacom_sys.c 			hid_err(wacom->hdev,
wacom            1627 drivers/hid/wacom_sys.c 		error = wacom_devm_sysfs_create_group(wacom,
wacom            1632 drivers/hid/wacom_sys.c 		wacom->led.llv = 50;
wacom            1633 drivers/hid/wacom_sys.c 		wacom->led.max_llv = 100;
wacom            1634 drivers/hid/wacom_sys.c 		error = wacom_leds_alloc_and_register(wacom, 1, 4, false);
wacom            1636 drivers/hid/wacom_sys.c 			hid_err(wacom->hdev,
wacom            1643 drivers/hid/wacom_sys.c 		wacom->led.llv = 255;
wacom            1644 drivers/hid/wacom_sys.c 		wacom->led.max_llv = 255;
wacom            1645 drivers/hid/wacom_sys.c 		error = wacom_led_groups_allocate(wacom, 5);
wacom            1647 drivers/hid/wacom_sys.c 			hid_err(wacom->hdev,
wacom            1658 drivers/hid/wacom_sys.c 		hid_err(wacom->hdev,
wacom            1668 drivers/hid/wacom_sys.c 	struct wacom *wacom = container_of(work, struct wacom, init_work.work);
wacom            1670 drivers/hid/wacom_sys.c 	_wacom_query_tablet_data(wacom);
wacom            1671 drivers/hid/wacom_sys.c 	wacom_led_control(wacom);
wacom            1674 drivers/hid/wacom_sys.c static void wacom_query_tablet_data(struct wacom *wacom)
wacom            1676 drivers/hid/wacom_sys.c 	schedule_delayed_work(&wacom->init_work, msecs_to_jiffies(1000));
wacom            1696 drivers/hid/wacom_sys.c 			val->strval = battery->wacom->wacom_wac.name;
wacom            1728 drivers/hid/wacom_sys.c static int __wacom_initialize_battery(struct wacom *wacom,
wacom            1732 drivers/hid/wacom_sys.c 	struct device *dev = &wacom->hdev->dev;
wacom            1742 drivers/hid/wacom_sys.c 	battery->wacom = wacom;
wacom            1760 drivers/hid/wacom_sys.c 	power_supply_powers(ps_bat, &wacom->hdev->dev);
wacom            1772 drivers/hid/wacom_sys.c static int wacom_initialize_battery(struct wacom *wacom)
wacom            1774 drivers/hid/wacom_sys.c 	if (wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY)
wacom            1775 drivers/hid/wacom_sys.c 		return __wacom_initialize_battery(wacom, &wacom->battery);
wacom            1780 drivers/hid/wacom_sys.c static void wacom_destroy_battery(struct wacom *wacom)
wacom            1782 drivers/hid/wacom_sys.c 	if (wacom->battery.battery) {
wacom            1783 drivers/hid/wacom_sys.c 		devres_release_group(&wacom->hdev->dev,
wacom            1784 drivers/hid/wacom_sys.c 				     &wacom->battery.bat_desc);
wacom            1785 drivers/hid/wacom_sys.c 		wacom->battery.battery = NULL;
wacom            1794 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1796 drivers/hid/wacom_sys.c 	return snprintf(buf, PAGE_SIZE, "%i\n", wacom->wacom_wac.bt_high_speed);
wacom            1804 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1813 drivers/hid/wacom_sys.c 	wacom_bt_query_tablet_data(hdev, new_speed, &wacom->wacom_wac.features);
wacom            1828 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1831 drivers/hid/wacom_sys.c 	mode = wacom->led.groups[index].select;
wacom            1861 drivers/hid/wacom_sys.c static int wacom_remote_create_attr_group(struct wacom *wacom, __u32 serial,
wacom            1865 drivers/hid/wacom_sys.c 	struct wacom_remote *remote = wacom->remote;
wacom            1867 drivers/hid/wacom_sys.c 	remote->remotes[index].group.name = devm_kasprintf(&wacom->hdev->dev,
wacom            1873 drivers/hid/wacom_sys.c 	error = __wacom_devm_sysfs_create_group(wacom, remote->remote_dir,
wacom            1877 drivers/hid/wacom_sys.c 		hid_err(wacom->hdev,
wacom            1885 drivers/hid/wacom_sys.c static int wacom_cmd_unpair_remote(struct wacom *wacom, unsigned char selector)
wacom            1898 drivers/hid/wacom_sys.c 	retval = wacom_set_report(wacom->hdev, HID_OUTPUT_REPORT, buf,
wacom            1912 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1918 drivers/hid/wacom_sys.c 		hid_info(wacom->hdev, "remote: unrecognized unpair code: %s\n",
wacom            1923 drivers/hid/wacom_sys.c 	mutex_lock(&wacom->lock);
wacom            1925 drivers/hid/wacom_sys.c 	err = wacom_cmd_unpair_remote(wacom, selector);
wacom            1926 drivers/hid/wacom_sys.c 	mutex_unlock(&wacom->lock);
wacom            1943 drivers/hid/wacom_sys.c 	struct wacom *wacom = data;
wacom            1944 drivers/hid/wacom_sys.c 	struct wacom_remote *remote = wacom->remote;
wacom            1951 drivers/hid/wacom_sys.c 	wacom->remote = NULL;
wacom            1954 drivers/hid/wacom_sys.c static int wacom_initialize_remotes(struct wacom *wacom)
wacom            1960 drivers/hid/wacom_sys.c 	if (wacom->wacom_wac.features.type != REMOTE)
wacom            1963 drivers/hid/wacom_sys.c 	remote = devm_kzalloc(&wacom->hdev->dev, sizeof(*wacom->remote),
wacom            1968 drivers/hid/wacom_sys.c 	wacom->remote = remote;
wacom            1976 drivers/hid/wacom_sys.c 		hid_err(wacom->hdev, "failed allocating remote_fifo\n");
wacom            1987 drivers/hid/wacom_sys.c 						    &wacom->hdev->dev.kobj);
wacom            1994 drivers/hid/wacom_sys.c 		hid_err(wacom->hdev,
wacom            2000 drivers/hid/wacom_sys.c 		wacom->led.groups[i].select = WACOM_STATUS_UNKNOWN;
wacom            2004 drivers/hid/wacom_sys.c 	error = devm_add_action_or_reset(&wacom->hdev->dev,
wacom            2005 drivers/hid/wacom_sys.c 					 wacom_remotes_destroy, wacom);
wacom            2012 drivers/hid/wacom_sys.c static struct input_dev *wacom_allocate_input(struct wacom *wacom)
wacom            2015 drivers/hid/wacom_sys.c 	struct hid_device *hdev = wacom->hdev;
wacom            2016 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &(wacom->wacom_wac);
wacom            2032 drivers/hid/wacom_sys.c 	input_set_drvdata(input_dev, wacom);
wacom            2037 drivers/hid/wacom_sys.c static int wacom_allocate_inputs(struct wacom *wacom)
wacom            2039 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &(wacom->wacom_wac);
wacom            2041 drivers/hid/wacom_sys.c 	wacom_wac->pen_input = wacom_allocate_input(wacom);
wacom            2042 drivers/hid/wacom_sys.c 	wacom_wac->touch_input = wacom_allocate_input(wacom);
wacom            2043 drivers/hid/wacom_sys.c 	wacom_wac->pad_input = wacom_allocate_input(wacom);
wacom            2056 drivers/hid/wacom_sys.c static int wacom_register_inputs(struct wacom *wacom)
wacom            2059 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &(wacom->wacom_wac);
wacom            2149 drivers/hid/wacom_sys.c 	struct wacom *wacom = container_of(work, struct wacom, battery_work);
wacom            2151 drivers/hid/wacom_sys.c 	if ((wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) &&
wacom            2152 drivers/hid/wacom_sys.c 	     !wacom->battery.battery) {
wacom            2153 drivers/hid/wacom_sys.c 		wacom_initialize_battery(wacom);
wacom            2155 drivers/hid/wacom_sys.c 	else if (!(wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) &&
wacom            2156 drivers/hid/wacom_sys.c 		 wacom->battery.battery) {
wacom            2157 drivers/hid/wacom_sys.c 		wacom_destroy_battery(wacom);
wacom            2178 drivers/hid/wacom_sys.c static void wacom_update_name(struct wacom *wacom, const char *suffix)
wacom            2180 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2186 drivers/hid/wacom_sys.c 		char *product_name = wacom->hdev->name;
wacom            2188 drivers/hid/wacom_sys.c 		if (hid_is_using_ll_driver(wacom->hdev, &usb_hid_driver)) {
wacom            2189 drivers/hid/wacom_sys.c 			struct usb_interface *intf = to_usb_interface(wacom->hdev->dev.parent);
wacom            2194 drivers/hid/wacom_sys.c 		if (wacom->hdev->bus == BUS_I2C) {
wacom            2196 drivers/hid/wacom_sys.c 				 features->name, wacom->hdev->product);
wacom            2233 drivers/hid/wacom_sys.c static void wacom_release_resources(struct wacom *wacom)
wacom            2235 drivers/hid/wacom_sys.c 	struct hid_device *hdev = wacom->hdev;
wacom            2237 drivers/hid/wacom_sys.c 	if (!wacom->resources)
wacom            2240 drivers/hid/wacom_sys.c 	devres_release_group(&hdev->dev, wacom);
wacom            2242 drivers/hid/wacom_sys.c 	wacom->resources = false;
wacom            2244 drivers/hid/wacom_sys.c 	wacom->wacom_wac.pen_input = NULL;
wacom            2245 drivers/hid/wacom_sys.c 	wacom->wacom_wac.touch_input = NULL;
wacom            2246 drivers/hid/wacom_sys.c 	wacom->wacom_wac.pad_input = NULL;
wacom            2269 drivers/hid/wacom_sys.c static int wacom_parse_and_register(struct wacom *wacom, bool wireless)
wacom            2271 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2273 drivers/hid/wacom_sys.c 	struct hid_device *hdev = wacom->hdev;
wacom            2281 drivers/hid/wacom_sys.c 	if (!devres_open_group(&hdev->dev, wacom, GFP_KERNEL))
wacom            2284 drivers/hid/wacom_sys.c 	wacom->resources = true;
wacom            2286 drivers/hid/wacom_sys.c 	error = wacom_allocate_inputs(wacom);
wacom            2310 drivers/hid/wacom_sys.c 	wacom_setup_device_quirks(wacom);
wacom            2328 drivers/hid/wacom_sys.c 	wacom_update_name(wacom, wireless ? " (WL)" : "");
wacom            2344 drivers/hid/wacom_sys.c 		error = wacom_initialize_battery(wacom);
wacom            2349 drivers/hid/wacom_sys.c 	error = wacom_register_inputs(wacom);
wacom            2353 drivers/hid/wacom_sys.c 	if (wacom->wacom_wac.features.device_type & WACOM_DEVICETYPE_PAD) {
wacom            2354 drivers/hid/wacom_sys.c 		error = wacom_initialize_leds(wacom);
wacom            2358 drivers/hid/wacom_sys.c 		error = wacom_initialize_remotes(wacom);
wacom            2375 drivers/hid/wacom_sys.c 		wacom_query_tablet_data(wacom);
wacom            2381 drivers/hid/wacom_sys.c 		cancel_delayed_work_sync(&wacom->init_work);
wacom            2382 drivers/hid/wacom_sys.c 		_wacom_query_tablet_data(wacom);
wacom            2391 drivers/hid/wacom_sys.c 	devres_close_group(&hdev->dev, wacom);
wacom            2398 drivers/hid/wacom_sys.c 	wacom_release_resources(wacom);
wacom            2404 drivers/hid/wacom_sys.c 	struct wacom *wacom = container_of(work, struct wacom, wireless_work);
wacom            2405 drivers/hid/wacom_sys.c 	struct usb_device *usbdev = wacom->usbdev;
wacom            2406 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2408 drivers/hid/wacom_sys.c 	struct wacom *wacom1, *wacom2;
wacom            2417 drivers/hid/wacom_sys.c 	wacom_destroy_battery(wacom);
wacom            2432 drivers/hid/wacom_sys.c 		hid_info(wacom->hdev, "wireless tablet disconnected\n");
wacom            2436 drivers/hid/wacom_sys.c 		hid_info(wacom->hdev, "wireless tablet connected with PID %x\n",
wacom            2447 drivers/hid/wacom_sys.c 			hid_info(wacom->hdev, "ignoring unknown PID.\n");
wacom            2476 drivers/hid/wacom_sys.c 		error = wacom_initialize_battery(wacom);
wacom            2489 drivers/hid/wacom_sys.c static void wacom_remote_destroy_one(struct wacom *wacom, unsigned int index)
wacom            2491 drivers/hid/wacom_sys.c 	struct wacom_remote *remote = wacom->remote;
wacom            2504 drivers/hid/wacom_sys.c 				devres_release_group(&wacom->hdev->dev,
wacom            2508 drivers/hid/wacom_sys.c 				devres_release_group(&wacom->hdev->dev,
wacom            2514 drivers/hid/wacom_sys.c 			wacom->led.groups[i].select = WACOM_STATUS_UNKNOWN;
wacom            2519 drivers/hid/wacom_sys.c static int wacom_remote_create_one(struct wacom *wacom, u32 serial,
wacom            2522 drivers/hid/wacom_sys.c 	struct wacom_remote *remote = wacom->remote;
wacom            2523 drivers/hid/wacom_sys.c 	struct device *dev = &wacom->hdev->dev;
wacom            2542 drivers/hid/wacom_sys.c 	error = wacom_remote_create_attr_group(wacom, serial, index);
wacom            2546 drivers/hid/wacom_sys.c 	remote->remotes[index].input = wacom_allocate_input(wacom);
wacom            2552 drivers/hid/wacom_sys.c 	remote->remotes[index].input->name = wacom->wacom_wac.pad_name;
wacom            2560 drivers/hid/wacom_sys.c 						   &wacom->wacom_wac);
wacom            2572 drivers/hid/wacom_sys.c 					wacom, index, 3, true);
wacom            2587 drivers/hid/wacom_sys.c static int wacom_remote_attach_battery(struct wacom *wacom, int index)
wacom            2589 drivers/hid/wacom_sys.c 	struct wacom_remote *remote = wacom->remote;
wacom            2598 drivers/hid/wacom_sys.c 	if (wacom->led.groups[index].select == WACOM_STATUS_UNKNOWN)
wacom            2601 drivers/hid/wacom_sys.c 	error = __wacom_initialize_battery(wacom,
wacom            2602 drivers/hid/wacom_sys.c 					&wacom->remote->remotes[index].battery);
wacom            2611 drivers/hid/wacom_sys.c 	struct wacom *wacom = container_of(work, struct wacom, remote_work);
wacom            2612 drivers/hid/wacom_sys.c 	struct wacom_remote *remote = wacom->remote;
wacom            2624 drivers/hid/wacom_sys.c 		hid_err(wacom->hdev,
wacom            2631 drivers/hid/wacom_sys.c 		wacom_schedule_work(&wacom->wacom_wac, WACOM_WORKER_REMOTE);
wacom            2640 drivers/hid/wacom_sys.c 				wacom_remote_attach_battery(wacom, i);
wacom            2645 drivers/hid/wacom_sys.c 				wacom_remote_destroy_one(wacom, i);
wacom            2647 drivers/hid/wacom_sys.c 			wacom_remote_create_one(wacom, serial, i);
wacom            2650 drivers/hid/wacom_sys.c 			wacom_remote_destroy_one(wacom, i);
wacom            2657 drivers/hid/wacom_sys.c 	struct wacom *wacom = container_of(work, struct wacom, mode_change_work);
wacom            2658 drivers/hid/wacom_sys.c 	struct wacom_shared *shared = wacom->wacom_wac.shared;
wacom            2659 drivers/hid/wacom_sys.c 	struct wacom *wacom1 = NULL;
wacom            2660 drivers/hid/wacom_sys.c 	struct wacom *wacom2 = NULL;
wacom            2661 drivers/hid/wacom_sys.c 	bool is_direct = wacom->wacom_wac.is_direct_mode;
wacom            2700 drivers/hid/wacom_sys.c 	struct wacom *wacom;
wacom            2713 drivers/hid/wacom_sys.c 	wacom = devm_kzalloc(&hdev->dev, sizeof(struct wacom), GFP_KERNEL);
wacom            2714 drivers/hid/wacom_sys.c 	if (!wacom)
wacom            2717 drivers/hid/wacom_sys.c 	hid_set_drvdata(hdev, wacom);
wacom            2718 drivers/hid/wacom_sys.c 	wacom->hdev = hdev;
wacom            2720 drivers/hid/wacom_sys.c 	wacom_wac = &wacom->wacom_wac;
wacom            2734 drivers/hid/wacom_sys.c 	wacom->usbdev = dev;
wacom            2735 drivers/hid/wacom_sys.c 	wacom->intf = intf;
wacom            2736 drivers/hid/wacom_sys.c 	mutex_init(&wacom->lock);
wacom            2737 drivers/hid/wacom_sys.c 	INIT_DELAYED_WORK(&wacom->init_work, wacom_init_work);
wacom            2738 drivers/hid/wacom_sys.c 	INIT_WORK(&wacom->wireless_work, wacom_wireless_work);
wacom            2739 drivers/hid/wacom_sys.c 	INIT_WORK(&wacom->battery_work, wacom_battery_work);
wacom            2740 drivers/hid/wacom_sys.c 	INIT_WORK(&wacom->remote_work, wacom_remote_work);
wacom            2741 drivers/hid/wacom_sys.c 	INIT_WORK(&wacom->mode_change_work, wacom_mode_change_work);
wacom            2750 drivers/hid/wacom_sys.c 	error = wacom_parse_and_register(wacom, false);
wacom            2767 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2768 drivers/hid/wacom_sys.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2776 drivers/hid/wacom_sys.c 	cancel_delayed_work_sync(&wacom->init_work);
wacom            2777 drivers/hid/wacom_sys.c 	cancel_work_sync(&wacom->wireless_work);
wacom            2778 drivers/hid/wacom_sys.c 	cancel_work_sync(&wacom->battery_work);
wacom            2779 drivers/hid/wacom_sys.c 	cancel_work_sync(&wacom->remote_work);
wacom            2780 drivers/hid/wacom_sys.c 	cancel_work_sync(&wacom->mode_change_work);
wacom            2785 drivers/hid/wacom_sys.c 	wacom_led_groups_release(wacom);
wacom            2787 drivers/hid/wacom_sys.c 	if (wacom->wacom_wac.features.type != REMOTE)
wacom            2788 drivers/hid/wacom_sys.c 		wacom_release_resources(wacom);
wacom            2796 drivers/hid/wacom_sys.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2798 drivers/hid/wacom_sys.c 	mutex_lock(&wacom->lock);
wacom            2801 drivers/hid/wacom_sys.c 	_wacom_query_tablet_data(wacom);
wacom            2802 drivers/hid/wacom_sys.c 	wacom_led_control(wacom);
wacom            2804 drivers/hid/wacom_sys.c 	mutex_unlock(&wacom->lock);
wacom              42 drivers/hid/wacom_wac.c static void wacom_update_led(struct wacom *wacom, int button_count, int mask,
wacom              82 drivers/hid/wacom_wac.c 	struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac);
wacom              84 drivers/hid/wacom_wac.c 	__wacom_notify_battery(&wacom->battery, bat_status, bat_capacity,
wacom              88 drivers/hid/wacom_wac.c static int wacom_penpartner_irq(struct wacom_wac *wacom)
wacom              90 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom              91 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom              96 drivers/hid/wacom_wac.c 			wacom->tool[0] = (data[5] & 0x20) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN;
wacom              97 drivers/hid/wacom_wac.c 			wacom->id[0] = (data[5] & 0x20) ? ERASER_DEVICE_ID : STYLUS_DEVICE_ID;
wacom              98 drivers/hid/wacom_wac.c 			input_report_key(input, wacom->tool[0], 1);
wacom              99 drivers/hid/wacom_wac.c 			input_report_abs(input, ABS_MISC, wacom->id[0]); /* report tool id */
wacom             106 drivers/hid/wacom_wac.c 			input_report_key(input, wacom->tool[0], 0);
wacom             132 drivers/hid/wacom_wac.c static int wacom_pl_irq(struct wacom_wac *wacom)
wacom             134 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom             135 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             136 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             147 drivers/hid/wacom_wac.c 	if (!wacom->id[0]) {
wacom             149 drivers/hid/wacom_wac.c 			wacom->tool[0] = BTN_TOOL_RUBBER;
wacom             150 drivers/hid/wacom_wac.c 			wacom->id[0] = ERASER_DEVICE_ID;
wacom             153 drivers/hid/wacom_wac.c 			wacom->tool[0] = BTN_TOOL_PEN;
wacom             154 drivers/hid/wacom_wac.c 			wacom->id[0] = STYLUS_DEVICE_ID;
wacom             162 drivers/hid/wacom_wac.c 	if (wacom->tool[0] == BTN_TOOL_RUBBER && !(data[4] & 0x20)) {
wacom             166 drivers/hid/wacom_wac.c 		wacom->tool[0] = BTN_TOOL_PEN;
wacom             167 drivers/hid/wacom_wac.c 		wacom->id[0] = STYLUS_DEVICE_ID;
wacom             183 drivers/hid/wacom_wac.c 		input_report_key(input, BTN_STYLUS2, (wacom->tool[0] == BTN_TOOL_PEN) && (data[4] & 0x20));
wacom             187 drivers/hid/wacom_wac.c 		wacom->id[0] = 0;
wacom             188 drivers/hid/wacom_wac.c 	input_report_key(input, wacom->tool[0], prox);
wacom             189 drivers/hid/wacom_wac.c 	input_report_abs(input, ABS_MISC, wacom->id[0]);
wacom             193 drivers/hid/wacom_wac.c static int wacom_ptu_irq(struct wacom_wac *wacom)
wacom             195 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             196 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             207 drivers/hid/wacom_wac.c 		wacom->id[0] = ERASER_DEVICE_ID;
wacom             211 drivers/hid/wacom_wac.c 		wacom->id[0] = STYLUS_DEVICE_ID;
wacom             213 drivers/hid/wacom_wac.c 	input_report_abs(input, ABS_MISC, wacom->id[0]); /* report tool id */
wacom             222 drivers/hid/wacom_wac.c static int wacom_dtu_irq(struct wacom_wac *wacom)
wacom             224 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             225 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             233 drivers/hid/wacom_wac.c 		wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN;
wacom             234 drivers/hid/wacom_wac.c 		if (wacom->tool[0] == BTN_TOOL_PEN)
wacom             235 drivers/hid/wacom_wac.c 			wacom->id[0] = STYLUS_DEVICE_ID;
wacom             237 drivers/hid/wacom_wac.c 			wacom->id[0] = ERASER_DEVICE_ID;
wacom             246 drivers/hid/wacom_wac.c 		wacom->id[0] = 0;
wacom             247 drivers/hid/wacom_wac.c 	input_report_key(input, wacom->tool[0], prox);
wacom             248 drivers/hid/wacom_wac.c 	input_report_abs(input, ABS_MISC, wacom->id[0]);
wacom             252 drivers/hid/wacom_wac.c static int wacom_dtus_irq(struct wacom_wac *wacom)
wacom             254 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             255 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             263 drivers/hid/wacom_wac.c 		input = wacom->pad_input;
wacom             276 drivers/hid/wacom_wac.c 				wacom->tool[0] = BTN_TOOL_RUBBER;
wacom             277 drivers/hid/wacom_wac.c 				wacom->id[0] = ERASER_DEVICE_ID;
wacom             281 drivers/hid/wacom_wac.c 				wacom->tool[0] = BTN_TOOL_PEN;
wacom             282 drivers/hid/wacom_wac.c 				wacom->id[0] = STYLUS_DEVICE_ID;
wacom             296 drivers/hid/wacom_wac.c 			wacom->id[0] = 0;
wacom             297 drivers/hid/wacom_wac.c 		input_report_key(input, wacom->tool[0], prox);
wacom             298 drivers/hid/wacom_wac.c 		input_report_abs(input, ABS_MISC, wacom->id[0]);
wacom             303 drivers/hid/wacom_wac.c static int wacom_graphire_irq(struct wacom_wac *wacom)
wacom             305 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom             306 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             307 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             308 drivers/hid/wacom_wac.c 	struct input_dev *pad_input = wacom->pad_input;
wacom             328 drivers/hid/wacom_wac.c 	if (prox || wacom->id[0]) {
wacom             333 drivers/hid/wacom_wac.c 				wacom->tool[0] = BTN_TOOL_PEN;
wacom             334 drivers/hid/wacom_wac.c 				wacom->id[0] = STYLUS_DEVICE_ID;
wacom             338 drivers/hid/wacom_wac.c 				wacom->tool[0] = BTN_TOOL_RUBBER;
wacom             339 drivers/hid/wacom_wac.c 				wacom->id[0] = ERASER_DEVICE_ID;
wacom             347 drivers/hid/wacom_wac.c 				wacom->tool[0] = BTN_TOOL_MOUSE;
wacom             348 drivers/hid/wacom_wac.c 				wacom->id[0] = CURSOR_DEVICE_ID;
wacom             354 drivers/hid/wacom_wac.c 		if (wacom->tool[0] != BTN_TOOL_MOUSE) {
wacom             393 drivers/hid/wacom_wac.c 			wacom->id[0] = 0;
wacom             394 drivers/hid/wacom_wac.c 		input_report_abs(input, ABS_MISC, wacom->id[0]); /* report tool id */
wacom             395 drivers/hid/wacom_wac.c 		input_report_key(input, wacom->tool[0], prox);
wacom             403 drivers/hid/wacom_wac.c 		if (prox || wacom->id[1]) {
wacom             404 drivers/hid/wacom_wac.c 			wacom->id[1] = PAD_DEVICE_ID;
wacom             410 drivers/hid/wacom_wac.c 				wacom->id[1] = 0;
wacom             411 drivers/hid/wacom_wac.c 			input_report_abs(pad_input, ABS_MISC, wacom->id[1]);
wacom             418 drivers/hid/wacom_wac.c 		if (prox || wacom->id[1]) {
wacom             419 drivers/hid/wacom_wac.c 			wacom->id[1] = PAD_DEVICE_ID;
wacom             426 drivers/hid/wacom_wac.c 				wacom->id[1] = 0;
wacom             427 drivers/hid/wacom_wac.c 			input_report_abs(pad_input, ABS_MISC, wacom->id[1]);
wacom             433 drivers/hid/wacom_wac.c 		if (prox || wacom->id[1]) {
wacom             434 drivers/hid/wacom_wac.c 			wacom->id[1] = PAD_DEVICE_ID;
wacom             438 drivers/hid/wacom_wac.c 				wacom->id[1] = 0;
wacom             439 drivers/hid/wacom_wac.c 			input_report_abs(pad_input, ABS_MISC, wacom->id[1]);
wacom             450 drivers/hid/wacom_wac.c 		wacom_notify_battery(wacom, WACOM_POWER_SUPPLY_STATUS_AUTO,
wacom             460 drivers/hid/wacom_wac.c 	struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac);
wacom             465 drivers/hid/wacom_wac.c 	re = &(wacom->hdev->report_enum[HID_FEATURE_REPORT]);
wacom             471 drivers/hid/wacom_wac.c 		hid_hw_request(wacom->hdev, r, HID_REQ_GET_REPORT);
wacom             475 drivers/hid/wacom_wac.c static int wacom_intuos_pad(struct wacom_wac *wacom)
wacom             477 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom             478 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             479 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pad_input;
wacom             523 drivers/hid/wacom_wac.c 				wacom->shared->is_touch_on =
wacom             524 drivers/hid/wacom_wac.c 					!wacom->shared->is_touch_on;
wacom             538 drivers/hid/wacom_wac.c 				wacom->shared->is_touch_on =
wacom             539 drivers/hid/wacom_wac.c 					!wacom->shared->is_touch_on;
wacom             615 drivers/hid/wacom_wac.c 	if (wacom->shared && wacom->shared->touch_input) {
wacom             616 drivers/hid/wacom_wac.c 		input_report_switch(wacom->shared->touch_input,
wacom             618 drivers/hid/wacom_wac.c 				    !wacom->shared->is_touch_on);
wacom             619 drivers/hid/wacom_wac.c 		input_sync(wacom->shared->touch_input);
wacom             628 drivers/hid/wacom_wac.c 	input_report_key(input, wacom->tool[1], prox ? 1 : 0);
wacom             729 drivers/hid/wacom_wac.c static void wacom_exit_report(struct wacom_wac *wacom)
wacom             731 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             732 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom             733 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             745 drivers/hid/wacom_wac.c 	if (wacom->tool[idx] >= BTN_TOOL_MOUSE) {
wacom             762 drivers/hid/wacom_wac.c 	input_report_key(input, wacom->tool[idx], 0);
wacom             764 drivers/hid/wacom_wac.c 	input_event(input, EV_MSC, MSC_SERIAL, wacom->serial[idx]);
wacom             765 drivers/hid/wacom_wac.c 	wacom->id[idx] = 0;
wacom             768 drivers/hid/wacom_wac.c static int wacom_intuos_inout(struct wacom_wac *wacom)
wacom             770 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom             771 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             772 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             783 drivers/hid/wacom_wac.c 		wacom->serial[idx] = ((data[3] & 0x0f) << 28) +
wacom             787 drivers/hid/wacom_wac.c 		wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) |
wacom             790 drivers/hid/wacom_wac.c 		wacom->tool[idx] = wacom_intuos_get_tool_type(wacom->id[idx]);
wacom             792 drivers/hid/wacom_wac.c 		wacom->shared->stylus_in_proximity = true;
wacom             799 drivers/hid/wacom_wac.c 			wacom->shared->stylus_in_proximity = true;
wacom             802 drivers/hid/wacom_wac.c 		if (wacom->reporting_data) {
wacom             805 drivers/hid/wacom_wac.c 			input_report_abs(input, ABS_DISTANCE, wacom->features.distance_max);
wacom             813 drivers/hid/wacom_wac.c 		wacom->shared->stylus_in_proximity = false;
wacom             814 drivers/hid/wacom_wac.c 		wacom->reporting_data = false;
wacom             817 drivers/hid/wacom_wac.c 		if (!wacom->id[idx])
wacom             820 drivers/hid/wacom_wac.c 		wacom_exit_report(wacom);
wacom             827 drivers/hid/wacom_wac.c static inline bool report_touch_events(struct wacom_wac *wacom)
wacom             829 drivers/hid/wacom_wac.c 	return (touch_arbitration ? !wacom->shared->stylus_in_proximity : 1);
wacom             832 drivers/hid/wacom_wac.c static inline bool delay_pen_events(struct wacom_wac *wacom)
wacom             834 drivers/hid/wacom_wac.c 	return (wacom->shared->touch_down && touch_arbitration);
wacom             837 drivers/hid/wacom_wac.c static int wacom_intuos_general(struct wacom_wac *wacom)
wacom             839 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom             840 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom             841 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom             850 drivers/hid/wacom_wac.c 	if (delay_pen_events(wacom))
wacom             854 drivers/hid/wacom_wac.c 	if (!wacom->id[idx]) {
wacom             856 drivers/hid/wacom_wac.c 		wacom_intuos_schedule_prox_event(wacom);
wacom             864 drivers/hid/wacom_wac.c 	if ((!((wacom->id[idx] >> 16) & 0x01) &&
wacom             867 drivers/hid/wacom_wac.c 	    (wacom->tool[idx] == BTN_TOOL_LENS &&
wacom             967 drivers/hid/wacom_wac.c 		if (wacom->tool[idx] == BTN_TOOL_MOUSE) {
wacom             981 drivers/hid/wacom_wac.c 		else if (wacom->tool[idx] == BTN_TOOL_LENS) {
wacom            1003 drivers/hid/wacom_wac.c 			 wacom_intuos_id_mangle(wacom->id[idx])); /* report tool id */
wacom            1004 drivers/hid/wacom_wac.c 	input_report_key(input, wacom->tool[idx], 1);
wacom            1005 drivers/hid/wacom_wac.c 	input_event(input, EV_MSC, MSC_SERIAL, wacom->serial[idx]);
wacom            1006 drivers/hid/wacom_wac.c 	wacom->reporting_data = true;
wacom            1010 drivers/hid/wacom_wac.c static int wacom_intuos_irq(struct wacom_wac *wacom)
wacom            1012 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1013 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom            1030 drivers/hid/wacom_wac.c 	result = wacom_intuos_pad(wacom);
wacom            1035 drivers/hid/wacom_wac.c 	result = wacom_intuos_inout(wacom);
wacom            1040 drivers/hid/wacom_wac.c 	result = wacom_intuos_general(wacom);
wacom            1051 drivers/hid/wacom_wac.c 	struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac);
wacom            1052 drivers/hid/wacom_wac.c 	struct wacom_remote *remote = wacom->remote;
wacom            1059 drivers/hid/wacom_wac.c 		hid_dbg(wacom->hdev, "%s: received unknown report #%d",
wacom            1124 drivers/hid/wacom_wac.c 			wacom->led.groups[i].select = touch_ring_mode;
wacom            1138 drivers/hid/wacom_wac.c 	struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac);
wacom            1140 drivers/hid/wacom_wac.c 	struct wacom_remote *remote = wacom->remote;
wacom            1164 drivers/hid/wacom_wac.c 		hid_err(wacom->hdev, "Can't queue Remote status event.\n");
wacom            1181 drivers/hid/wacom_wac.c static void wacom_intuos_bt_process_data(struct wacom_wac *wacom,
wacom            1184 drivers/hid/wacom_wac.c 	memcpy(wacom->data, data, 10);
wacom            1185 drivers/hid/wacom_wac.c 	wacom_intuos_irq(wacom);
wacom            1187 drivers/hid/wacom_wac.c 	input_sync(wacom->pen_input);
wacom            1188 drivers/hid/wacom_wac.c 	if (wacom->pad_input)
wacom            1189 drivers/hid/wacom_wac.c 		input_sync(wacom->pad_input);
wacom            1192 drivers/hid/wacom_wac.c static int wacom_intuos_bt_irq(struct wacom_wac *wacom, size_t len)
wacom            1198 drivers/hid/wacom_wac.c 	memcpy(data, wacom->data, len);
wacom            1202 drivers/hid/wacom_wac.c 		wacom_intuos_bt_process_data(wacom, data + i);
wacom            1206 drivers/hid/wacom_wac.c 		wacom_intuos_bt_process_data(wacom, data + i);
wacom            1208 drivers/hid/wacom_wac.c 		wacom_intuos_bt_process_data(wacom, data + i);
wacom            1214 drivers/hid/wacom_wac.c 		wacom_notify_battery(wacom, WACOM_POWER_SUPPLY_STATUS_AUTO,
wacom            1220 drivers/hid/wacom_wac.c 		dev_dbg(wacom->pen_input->dev.parent,
wacom            1228 drivers/hid/wacom_wac.c static int wacom_wac_finger_count_touches(struct wacom_wac *wacom)
wacom            1230 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            1231 drivers/hid/wacom_wac.c 	unsigned touch_max = wacom->features.touch_max;
wacom            1240 drivers/hid/wacom_wac.c 			report_touch_events(wacom);
wacom            1252 drivers/hid/wacom_wac.c static void wacom_intuos_pro2_bt_pen(struct wacom_wac *wacom)
wacom            1256 drivers/hid/wacom_wac.c 	struct input_dev *pen_input = wacom->pen_input;
wacom            1257 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1260 drivers/hid/wacom_wac.c 	if (wacom->features.type == INTUOSP2_BT ||
wacom            1261 drivers/hid/wacom_wac.c 	    wacom->features.type == INTUOSP2S_BT) {
wacom            1262 drivers/hid/wacom_wac.c 		wacom->serial[0] = get_unaligned_le64(&data[99]);
wacom            1263 drivers/hid/wacom_wac.c 		wacom->id[0]     = get_unaligned_le16(&data[107]);
wacom            1267 drivers/hid/wacom_wac.c 		wacom->serial[0] = get_unaligned_le64(&data[33]);
wacom            1268 drivers/hid/wacom_wac.c 		wacom->id[0]     = get_unaligned_le16(&data[41]);
wacom            1273 drivers/hid/wacom_wac.c 	if (wacom->serial[0] >> 52 == 1) {
wacom            1275 drivers/hid/wacom_wac.c 		wacom->id[0] |= (wacom->serial[0] >> 32) & 0xFFFFF;
wacom            1289 drivers/hid/wacom_wac.c 			wacom->shared->stylus_in_proximity = false;
wacom            1290 drivers/hid/wacom_wac.c 			wacom_exit_report(wacom);
wacom            1293 drivers/hid/wacom_wac.c 			wacom->tool[0] = 0;
wacom            1294 drivers/hid/wacom_wac.c 			wacom->id[0] = 0;
wacom            1295 drivers/hid/wacom_wac.c 			wacom->serial[0] = 0;
wacom            1300 drivers/hid/wacom_wac.c 			if (!wacom->tool[0]) { /* first in range */
wacom            1303 drivers/hid/wacom_wac.c 					wacom->tool[0] = BTN_TOOL_RUBBER;
wacom            1304 drivers/hid/wacom_wac.c 				else if (wacom->id[0])
wacom            1305 drivers/hid/wacom_wac.c 					wacom->tool[0] = wacom_intuos_get_tool_type(wacom->id[0]);
wacom            1307 drivers/hid/wacom_wac.c 					wacom->tool[0] = BTN_TOOL_PEN;
wacom            1313 drivers/hid/wacom_wac.c 			if (wacom->features.type == INTUOSP2_BT ||
wacom            1314 drivers/hid/wacom_wac.c 			    wacom->features.type == INTUOSP2S_BT) {
wacom            1332 drivers/hid/wacom_wac.c 		if (wacom->tool[0]) {
wacom            1334 drivers/hid/wacom_wac.c 			if (wacom->features.type == INTUOSP2_BT ||
wacom            1335 drivers/hid/wacom_wac.c 			    wacom->features.type == INTUOSP2S_BT) {
wacom            1337 drivers/hid/wacom_wac.c 						 range ? frame[13] : wacom->features.distance_max);
wacom            1340 drivers/hid/wacom_wac.c 						 range ? frame[7] : wacom->features.distance_max);
wacom            1347 drivers/hid/wacom_wac.c 			input_report_key(pen_input, wacom->tool[0], prox);
wacom            1348 drivers/hid/wacom_wac.c 			input_event(pen_input, EV_MSC, MSC_SERIAL, wacom->serial[0]);
wacom            1350 drivers/hid/wacom_wac.c 					 wacom_intuos_id_mangle(wacom->id[0])); /* report tool id */
wacom            1353 drivers/hid/wacom_wac.c 		wacom->shared->stylus_in_proximity = prox;
wacom            1359 drivers/hid/wacom_wac.c static void wacom_intuos_pro2_bt_touch(struct wacom_wac *wacom)
wacom            1365 drivers/hid/wacom_wac.c 	struct input_dev *touch_input = wacom->touch_input;
wacom            1366 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1383 drivers/hid/wacom_wac.c 			wacom->num_contacts_left = current_num_contacts;
wacom            1385 drivers/hid/wacom_wac.c 		contacts_to_send = min(num_contacts_left, wacom->num_contacts_left);
wacom            1409 drivers/hid/wacom_wac.c 		wacom->num_contacts_left -= contacts_to_send;
wacom            1410 drivers/hid/wacom_wac.c 		if (wacom->num_contacts_left <= 0) {
wacom            1411 drivers/hid/wacom_wac.c 			wacom->num_contacts_left = 0;
wacom            1412 drivers/hid/wacom_wac.c 			wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
wacom            1417 drivers/hid/wacom_wac.c 	if (wacom->num_contacts_left == 0) {
wacom            1426 drivers/hid/wacom_wac.c static void wacom_intuos_pro2_bt_pad(struct wacom_wac *wacom)
wacom            1428 drivers/hid/wacom_wac.c 	struct input_dev *pad_input = wacom->pad_input;
wacom            1429 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1430 drivers/hid/wacom_wac.c 	int nbuttons = wacom->features.numbered_buttons;
wacom            1449 drivers/hid/wacom_wac.c 	input_report_key(pad_input, wacom->tool[1], prox ? 1 : 0);
wacom            1456 drivers/hid/wacom_wac.c static void wacom_intuos_pro2_bt_battery(struct wacom_wac *wacom)
wacom            1458 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1463 drivers/hid/wacom_wac.c 	wacom_notify_battery(wacom, WACOM_POWER_SUPPLY_STATUS_AUTO,
wacom            1467 drivers/hid/wacom_wac.c static void wacom_intuos_gen3_bt_pad(struct wacom_wac *wacom)
wacom            1469 drivers/hid/wacom_wac.c 	struct input_dev *pad_input = wacom->pad_input;
wacom            1470 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1476 drivers/hid/wacom_wac.c 	input_report_key(pad_input, wacom->tool[1], buttons ? 1 : 0);
wacom            1483 drivers/hid/wacom_wac.c static void wacom_intuos_gen3_bt_battery(struct wacom_wac *wacom)
wacom            1485 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1490 drivers/hid/wacom_wac.c 	wacom_notify_battery(wacom, WACOM_POWER_SUPPLY_STATUS_AUTO,
wacom            1494 drivers/hid/wacom_wac.c static int wacom_intuos_pro2_bt_irq(struct wacom_wac *wacom, size_t len)
wacom            1496 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1499 drivers/hid/wacom_wac.c 		dev_dbg(wacom->pen_input->dev.parent,
wacom            1504 drivers/hid/wacom_wac.c 	wacom_intuos_pro2_bt_pen(wacom);
wacom            1505 drivers/hid/wacom_wac.c 	if (wacom->features.type == INTUOSP2_BT ||
wacom            1506 drivers/hid/wacom_wac.c 	    wacom->features.type == INTUOSP2S_BT) {
wacom            1507 drivers/hid/wacom_wac.c 		wacom_intuos_pro2_bt_touch(wacom);
wacom            1508 drivers/hid/wacom_wac.c 		wacom_intuos_pro2_bt_pad(wacom);
wacom            1509 drivers/hid/wacom_wac.c 		wacom_intuos_pro2_bt_battery(wacom);
wacom            1511 drivers/hid/wacom_wac.c 		wacom_intuos_gen3_bt_pad(wacom);
wacom            1512 drivers/hid/wacom_wac.c 		wacom_intuos_gen3_bt_battery(wacom);
wacom            1517 drivers/hid/wacom_wac.c static int wacom_24hdt_irq(struct wacom_wac *wacom)
wacom            1519 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            1520 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1528 drivers/hid/wacom_wac.c 	if (wacom->shared->has_mute_touch_switch &&
wacom            1529 drivers/hid/wacom_wac.c 	    !wacom->shared->is_touch_on) {
wacom            1530 drivers/hid/wacom_wac.c 		if (!wacom->shared->touch_down)
wacom            1534 drivers/hid/wacom_wac.c 	if (wacom->features.type == WACOM_27QHDT) {
wacom            1546 drivers/hid/wacom_wac.c 		wacom->num_contacts_left = current_num_contacts;
wacom            1548 drivers/hid/wacom_wac.c 	contacts_to_send = min(num_contacts_left, wacom->num_contacts_left);
wacom            1552 drivers/hid/wacom_wac.c 		bool touch = (data[offset] & 0x1) && report_touch_events(wacom);
wacom            1567 drivers/hid/wacom_wac.c 			if (wacom->features.type != WACOM_27QHDT) {
wacom            1583 drivers/hid/wacom_wac.c 	wacom->num_contacts_left -= contacts_to_send;
wacom            1584 drivers/hid/wacom_wac.c 	if (wacom->num_contacts_left <= 0) {
wacom            1585 drivers/hid/wacom_wac.c 		wacom->num_contacts_left = 0;
wacom            1586 drivers/hid/wacom_wac.c 		wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
wacom            1591 drivers/hid/wacom_wac.c static int wacom_mt_touch(struct wacom_wac *wacom)
wacom            1593 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            1594 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1601 drivers/hid/wacom_wac.c 	if (wacom->features.type == MTTPC || wacom->features.type == MTTPC_B)
wacom            1609 drivers/hid/wacom_wac.c 		wacom->num_contacts_left = current_num_contacts;
wacom            1612 drivers/hid/wacom_wac.c 	contacts_to_send = min(5, wacom->num_contacts_left);
wacom            1616 drivers/hid/wacom_wac.c 		bool touch = (data[offset] & 0x1) && report_touch_events(wacom);
wacom            1634 drivers/hid/wacom_wac.c 	wacom->num_contacts_left -= contacts_to_send;
wacom            1635 drivers/hid/wacom_wac.c 	if (wacom->num_contacts_left <= 0) {
wacom            1636 drivers/hid/wacom_wac.c 		wacom->num_contacts_left = 0;
wacom            1637 drivers/hid/wacom_wac.c 		wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
wacom            1642 drivers/hid/wacom_wac.c static int wacom_tpc_mt_touch(struct wacom_wac *wacom)
wacom            1644 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            1645 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1650 drivers/hid/wacom_wac.c 		bool touch = p && report_touch_events(wacom);
wacom            1665 drivers/hid/wacom_wac.c 	wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
wacom            1670 drivers/hid/wacom_wac.c static int wacom_tpc_single_touch(struct wacom_wac *wacom, size_t len)
wacom            1672 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1673 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            1674 drivers/hid/wacom_wac.c 	bool prox = report_touch_events(wacom);
wacom            1677 drivers/hid/wacom_wac.c 	if (wacom->features.touch_max > 1 || len > WACOM_PKGLEN_TPC2FG)
wacom            1701 drivers/hid/wacom_wac.c 	wacom->shared->touch_down = prox;
wacom            1706 drivers/hid/wacom_wac.c static int wacom_tpc_pen(struct wacom_wac *wacom)
wacom            1708 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1709 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom            1712 drivers/hid/wacom_wac.c 	if (!wacom->shared->stylus_in_proximity) /* first in prox */
wacom            1714 drivers/hid/wacom_wac.c 		wacom->tool[0] = (data[1] & 0x0c) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN;
wacom            1717 drivers/hid/wacom_wac.c 	wacom->shared->stylus_in_proximity = prox;
wacom            1722 drivers/hid/wacom_wac.c 	if (!delay_pen_events(wacom)) {
wacom            1729 drivers/hid/wacom_wac.c 		input_report_key(input, wacom->tool[0], prox);
wacom            1736 drivers/hid/wacom_wac.c static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
wacom            1738 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            1740 drivers/hid/wacom_wac.c 	if (wacom->pen_input) {
wacom            1741 drivers/hid/wacom_wac.c 		dev_dbg(wacom->pen_input->dev.parent,
wacom            1746 drivers/hid/wacom_wac.c 			return wacom_tpc_pen(wacom);
wacom            1748 drivers/hid/wacom_wac.c 	else if (wacom->touch_input) {
wacom            1749 drivers/hid/wacom_wac.c 		dev_dbg(wacom->touch_input->dev.parent,
wacom            1754 drivers/hid/wacom_wac.c 			return wacom_tpc_single_touch(wacom, len);
wacom            1757 drivers/hid/wacom_wac.c 			return wacom_tpc_mt_touch(wacom);
wacom            1765 drivers/hid/wacom_wac.c 				return wacom_tpc_single_touch(wacom, len);
wacom            1769 drivers/hid/wacom_wac.c 				return wacom_mt_touch(wacom);
wacom            1839 drivers/hid/wacom_wac.c 	struct wacom *wacom = input_get_drvdata(input);
wacom            1840 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            1886 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1887 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            1903 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1904 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            1943 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1944 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            1962 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            1963 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2069 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2070 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2143 drivers/hid/wacom_wac.c 			wacom_schedule_work(&wacom->wacom_wac, WACOM_WORKER_MODE_CHANGE);
wacom            2148 drivers/hid/wacom_wac.c 		for (i = 0; i < wacom->led.count; i++)
wacom            2149 drivers/hid/wacom_wac.c 			wacom_update_led(wacom, features->numbered_buttons,
wacom            2167 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2168 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2176 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2177 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2193 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2194 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2272 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2273 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2400 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2401 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2410 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2411 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2476 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2477 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2572 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2573 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2575 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->wacom_wac.features;
wacom            2616 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2617 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2667 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2668 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2692 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2693 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2713 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2715 drivers/hid/wacom_wac.c 	if (wacom->wacom_wac.features.type != HID_GENERIC)
wacom            2724 drivers/hid/wacom_wac.c 	else if (WACOM_PAD_FIELD(field) && wacom->wacom_wac.pad_input)
wacom            2726 drivers/hid/wacom_wac.c 	else if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
wacom            2728 drivers/hid/wacom_wac.c 	else if (WACOM_FINGER_FIELD(field) && wacom->wacom_wac.touch_input)
wacom            2762 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2776 drivers/hid/wacom_wac.c 	if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
wacom            2778 drivers/hid/wacom_wac.c 	else if (WACOM_FINGER_FIELD(field) && wacom->wacom_wac.touch_input)
wacom            2786 drivers/hid/wacom_wac.c 	struct wacom *wacom = hid_get_drvdata(hdev);
wacom            2787 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            2812 drivers/hid/wacom_wac.c 	if (pad_in_hid_field && wacom->wacom_wac.pad_input)
wacom            2814 drivers/hid/wacom_wac.c 	if (pen_in_hid_field && wacom->wacom_wac.pen_input)
wacom            2816 drivers/hid/wacom_wac.c 	if (finger_in_hid_field && wacom->wacom_wac.touch_input)
wacom            2832 drivers/hid/wacom_wac.c 	if (true_pad && wacom->wacom_wac.pad_input)
wacom            2836 drivers/hid/wacom_wac.c static int wacom_bpt_touch(struct wacom_wac *wacom)
wacom            2838 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom            2839 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            2840 drivers/hid/wacom_wac.c 	struct input_dev *pad_input = wacom->pad_input;
wacom            2841 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            2849 drivers/hid/wacom_wac.c 		bool touch = report_touch_events(wacom)
wacom            2872 drivers/hid/wacom_wac.c 	wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
wacom            2877 drivers/hid/wacom_wac.c static void wacom_bpt3_touch_msg(struct wacom_wac *wacom, unsigned char *data)
wacom            2879 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom            2880 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            2887 drivers/hid/wacom_wac.c 	touch = touch && report_touch_events(wacom);
wacom            2920 drivers/hid/wacom_wac.c static void wacom_bpt3_button_msg(struct wacom_wac *wacom, unsigned char *data)
wacom            2922 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pad_input;
wacom            2923 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom            2936 drivers/hid/wacom_wac.c static int wacom_bpt3_touch(struct wacom_wac *wacom)
wacom            2938 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            2951 drivers/hid/wacom_wac.c 			wacom_bpt3_touch_msg(wacom, data + offset);
wacom            2954 drivers/hid/wacom_wac.c 			wacom_bpt3_button_msg(wacom, data + offset);
wacom            2959 drivers/hid/wacom_wac.c 	if (wacom->touch_input && touch_changed) {
wacom            2960 drivers/hid/wacom_wac.c 		input_mt_sync_frame(wacom->touch_input);
wacom            2961 drivers/hid/wacom_wac.c 		wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
wacom            2967 drivers/hid/wacom_wac.c static int wacom_bpt_pen(struct wacom_wac *wacom)
wacom            2969 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom            2970 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->pen_input;
wacom            2971 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            2983 drivers/hid/wacom_wac.c 	wacom->shared->stylus_in_proximity = range;
wacom            2984 drivers/hid/wacom_wac.c 	if (delay_pen_events(wacom))
wacom            2998 drivers/hid/wacom_wac.c 			wacom->tool[0] = BTN_TOOL_RUBBER;
wacom            2999 drivers/hid/wacom_wac.c 			wacom->id[0] = ERASER_DEVICE_ID;
wacom            3001 drivers/hid/wacom_wac.c 			wacom->tool[0] = BTN_TOOL_PEN;
wacom            3002 drivers/hid/wacom_wac.c 			wacom->id[0] = STYLUS_DEVICE_ID;
wacom            3004 drivers/hid/wacom_wac.c 		wacom->reporting_data = true;
wacom            3016 drivers/hid/wacom_wac.c 		wacom->id[0] = 0;
wacom            3019 drivers/hid/wacom_wac.c 	if (wacom->reporting_data) {
wacom            3031 drivers/hid/wacom_wac.c 		input_report_key(input, wacom->tool[0], range); /* PEN or RUBBER */
wacom            3032 drivers/hid/wacom_wac.c 		input_report_abs(input, ABS_MISC, wacom->id[0]); /* TOOL ID */
wacom            3036 drivers/hid/wacom_wac.c 		wacom->reporting_data = false;
wacom            3042 drivers/hid/wacom_wac.c static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
wacom            3044 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->features;
wacom            3048 drivers/hid/wacom_wac.c 		return wacom_intuos_irq(wacom);
wacom            3050 drivers/hid/wacom_wac.c 		return wacom_bpt_touch(wacom);
wacom            3052 drivers/hid/wacom_wac.c 		return wacom_bpt3_touch(wacom);
wacom            3054 drivers/hid/wacom_wac.c 		return wacom_bpt_pen(wacom);
wacom            3059 drivers/hid/wacom_wac.c static void wacom_bamboo_pad_pen_event(struct wacom_wac *wacom,
wacom            3079 drivers/hid/wacom_wac.c 	hid_input_report(wacom->shared->pen, HID_INPUT_REPORT, data,
wacom            3085 drivers/hid/wacom_wac.c static int wacom_bamboo_pad_touch_event(struct wacom_wac *wacom,
wacom            3088 drivers/hid/wacom_wac.c 	struct input_dev *input = wacom->touch_input;
wacom            3096 drivers/hid/wacom_wac.c 	for (id = 0; id < wacom->features.touch_max; id++) {
wacom            3098 drivers/hid/wacom_wac.c 			report_touch_events(wacom);
wacom            3120 drivers/hid/wacom_wac.c 	wacom->shared->touch_down = !!prefix && report_touch_events(wacom);
wacom            3125 drivers/hid/wacom_wac.c static int wacom_bamboo_pad_irq(struct wacom_wac *wacom, size_t len)
wacom            3127 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            3135 drivers/hid/wacom_wac.c 		wacom_bamboo_pad_pen_event(wacom, &data[1]);
wacom            3138 drivers/hid/wacom_wac.c 		return wacom_bamboo_pad_touch_event(wacom, &data[9]);
wacom            3143 drivers/hid/wacom_wac.c static int wacom_wireless_irq(struct wacom_wac *wacom, size_t len)
wacom            3145 drivers/hid/wacom_wac.c 	unsigned char *data = wacom->data;
wacom            3155 drivers/hid/wacom_wac.c 		if ((wacom->shared->type == INTUOSHT ||
wacom            3156 drivers/hid/wacom_wac.c 		    wacom->shared->type == INTUOSHT2) &&
wacom            3157 drivers/hid/wacom_wac.c 		    wacom->shared->touch_input &&
wacom            3158 drivers/hid/wacom_wac.c 		    wacom->shared->touch_max) {
wacom            3159 drivers/hid/wacom_wac.c 			input_report_switch(wacom->shared->touch_input,
wacom            3161 drivers/hid/wacom_wac.c 			input_sync(wacom->shared->touch_input);
wacom            3167 drivers/hid/wacom_wac.c 		if (wacom->pid != pid) {
wacom            3168 drivers/hid/wacom_wac.c 			wacom->pid = pid;
wacom            3169 drivers/hid/wacom_wac.c 			wacom_schedule_work(wacom, WACOM_WORKER_WIRELESS);
wacom            3172 drivers/hid/wacom_wac.c 		wacom_notify_battery(wacom, WACOM_POWER_SUPPLY_STATUS_AUTO,
wacom            3175 drivers/hid/wacom_wac.c 	} else if (wacom->pid != 0) {
wacom            3177 drivers/hid/wacom_wac.c 		wacom->pid = 0;
wacom            3178 drivers/hid/wacom_wac.c 		wacom_schedule_work(wacom, WACOM_WORKER_WIRELESS);
wacom            3179 drivers/hid/wacom_wac.c 		wacom_notify_battery(wacom, POWER_SUPPLY_STATUS_UNKNOWN, 0, 0, 0, 0);
wacom            3187 drivers/hid/wacom_wac.c 	struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac);
wacom            3210 drivers/hid/wacom_wac.c 		if (!wacom->battery.battery &&
wacom            3217 drivers/hid/wacom_wac.c 		 wacom->battery.battery) {
wacom            3412 drivers/hid/wacom_wac.c void wacom_setup_device_quirks(struct wacom *wacom)
wacom            3414 drivers/hid/wacom_wac.c 	struct wacom_wac *wacom_wac = &wacom->wacom_wac;
wacom            3415 drivers/hid/wacom_wac.c 	struct wacom_features *features = &wacom->wacom_wac.features;
wacom            3524 drivers/hid/wacom_wac.c 	if (wacom->hdev->bus == BUS_BLUETOOTH)
wacom            3549 drivers/hid/wacom_wac.c 	if (wacom->hdev->product == 0x382 || wacom->hdev->product == 0x37d) {
wacom            3896 drivers/hid/wacom_wac.c static void wacom_24hd_update_leds(struct wacom *wacom, int mask, int group)
wacom            3911 drivers/hid/wacom_wac.c 		led = wacom_led_find(wacom, group, i);
wacom            3913 drivers/hid/wacom_wac.c 			hid_err(wacom->hdev, "can't find LED %d in group %d\n",
wacom            3926 drivers/hid/wacom_wac.c static bool wacom_is_led_toggled(struct wacom *wacom, int button_count,
wacom            3936 drivers/hid/wacom_wac.c 	if (wacom->wacom_wac.features.type == WACOM_21UX2)
wacom            3939 drivers/hid/wacom_wac.c 	group_button = group * (button_count/wacom->led.count);
wacom            3941 drivers/hid/wacom_wac.c 	if (wacom->wacom_wac.features.type == INTUOSP2_BT)
wacom            3947 drivers/hid/wacom_wac.c static void wacom_update_led(struct wacom *wacom, int button_count, int mask,
wacom            3954 drivers/hid/wacom_wac.c 	if (wacom->wacom_wac.features.type == WACOM_24HD)
wacom            3955 drivers/hid/wacom_wac.c 		return wacom_24hd_update_leds(wacom, mask, group);
wacom            3957 drivers/hid/wacom_wac.c 	pressed = wacom_is_led_toggled(wacom, button_count, mask, group);
wacom            3958 drivers/hid/wacom_wac.c 	cur = wacom->led.groups[group].select;
wacom            3960 drivers/hid/wacom_wac.c 	led = wacom_led_find(wacom, group, cur);
wacom            3962 drivers/hid/wacom_wac.c 		hid_err(wacom->hdev, "can't find current LED %d in group %d\n",
wacom            3975 drivers/hid/wacom_wac.c 	next_led = wacom_led_next(wacom, led);
wacom            3977 drivers/hid/wacom_wac.c 		hid_err(wacom->hdev, "can't find next LED in group %d\n",
wacom            3992 drivers/hid/wacom_wac.c 	struct wacom *wacom = input_get_drvdata(input_dev);
wacom            3995 drivers/hid/wacom_wac.c 	for (i = 0; i < wacom->led.count; i++)
wacom            3996 drivers/hid/wacom_wac.c 		wacom_update_led(wacom,  button_count, mask, i);
wacom             188 drivers/input/tablet/wacom_serial4.c static void wacom_handle_model_response(struct wacom *wacom)
wacom             193 drivers/input/tablet/wacom_serial4.c 	p = strrchr(wacom->data, 'V');
wacom             199 drivers/input/tablet/wacom_serial4.c 	switch (wacom->data[2] << 8 | wacom->data[3]) {
wacom             202 drivers/input/tablet/wacom_serial4.c 		if ((wacom->data[2] << 8 | wacom->data[3]) == MODEL_CINTIQ) {
wacom             203 drivers/input/tablet/wacom_serial4.c 			wacom->dev->name = "Wacom Cintiq";
wacom             204 drivers/input/tablet/wacom_serial4.c 			wacom->dev->id.version = MODEL_CINTIQ;
wacom             206 drivers/input/tablet/wacom_serial4.c 			wacom->dev->name = "Wacom Cintiq II";
wacom             207 drivers/input/tablet/wacom_serial4.c 			wacom->dev->id.version = MODEL_CINTIQ2;
wacom             209 drivers/input/tablet/wacom_serial4.c 		wacom->res_x = 508;
wacom             210 drivers/input/tablet/wacom_serial4.c 		wacom->res_y = 508;
wacom             212 drivers/input/tablet/wacom_serial4.c 		switch (wacom->data[5] << 8 | wacom->data[6]) {
wacom             214 drivers/input/tablet/wacom_serial4.c 			wacom->res_x = 2540;
wacom             215 drivers/input/tablet/wacom_serial4.c 			wacom->res_y = 2540;
wacom             219 drivers/input/tablet/wacom_serial4.c 			wacom->extra_z_bits = 2;
wacom             222 drivers/input/tablet/wacom_serial4.c 		wacom->flags = F_COVERS_SCREEN;
wacom             226 drivers/input/tablet/wacom_serial4.c 		wacom->dev->name = "Wacom Penpartner";
wacom             227 drivers/input/tablet/wacom_serial4.c 		wacom->dev->id.version = MODEL_PENPARTNER;
wacom             228 drivers/input/tablet/wacom_serial4.c 		wacom->res_x = 1000;
wacom             229 drivers/input/tablet/wacom_serial4.c 		wacom->res_y = 1000;
wacom             233 drivers/input/tablet/wacom_serial4.c 		wacom->dev->name = "Wacom Graphire";
wacom             234 drivers/input/tablet/wacom_serial4.c 		wacom->dev->id.version = MODEL_GRAPHIRE;
wacom             235 drivers/input/tablet/wacom_serial4.c 		wacom->res_x = 1016;
wacom             236 drivers/input/tablet/wacom_serial4.c 		wacom->res_y = 1016;
wacom             237 drivers/input/tablet/wacom_serial4.c 		wacom->max_x = 5103;
wacom             238 drivers/input/tablet/wacom_serial4.c 		wacom->max_y = 3711;
wacom             239 drivers/input/tablet/wacom_serial4.c 		wacom->extra_z_bits = 2;
wacom             240 drivers/input/tablet/wacom_serial4.c 		wacom->eraser_mask = 0x08;
wacom             241 drivers/input/tablet/wacom_serial4.c 		wacom->flags = F_HAS_STYLUS2 | F_HAS_SCROLLWHEEL;
wacom             246 drivers/input/tablet/wacom_serial4.c 		wacom->dev->name = "Wacom Digitizer II";
wacom             247 drivers/input/tablet/wacom_serial4.c 		wacom->dev->id.version = MODEL_DIGITIZER_II;
wacom             249 drivers/input/tablet/wacom_serial4.c 			wacom->extra_z_bits = 0; /* UNTESTED */
wacom             253 drivers/input/tablet/wacom_serial4.c 		dev_err(&wacom->dev->dev, "Unsupported Wacom model %s\n",
wacom             254 drivers/input/tablet/wacom_serial4.c 			wacom->data);
wacom             255 drivers/input/tablet/wacom_serial4.c 		wacom->result = -ENODEV;
wacom             259 drivers/input/tablet/wacom_serial4.c 	dev_info(&wacom->dev->dev, "%s tablet, version %u.%u\n",
wacom             260 drivers/input/tablet/wacom_serial4.c 		 wacom->dev->name, major_v, minor_v);
wacom             263 drivers/input/tablet/wacom_serial4.c static void wacom_handle_configuration_response(struct wacom *wacom)
wacom             267 drivers/input/tablet/wacom_serial4.c 	dev_dbg(&wacom->dev->dev, "Configuration string: %s\n", wacom->data);
wacom             268 drivers/input/tablet/wacom_serial4.c 	r = sscanf(wacom->data, "~R%x,%u,%u,%u,%u", &skip, &skip, &skip,
wacom             269 drivers/input/tablet/wacom_serial4.c 		   &wacom->res_x, &wacom->res_y);
wacom             271 drivers/input/tablet/wacom_serial4.c 		dev_warn(&wacom->dev->dev, "could not get resolution\n");
wacom             274 drivers/input/tablet/wacom_serial4.c static void wacom_handle_coordinates_response(struct wacom *wacom)
wacom             278 drivers/input/tablet/wacom_serial4.c 	dev_dbg(&wacom->dev->dev, "Coordinates string: %s\n", wacom->data);
wacom             279 drivers/input/tablet/wacom_serial4.c 	r = sscanf(wacom->data, "~C%u,%u", &wacom->max_x, &wacom->max_y);
wacom             281 drivers/input/tablet/wacom_serial4.c 		dev_warn(&wacom->dev->dev, "could not get max coordinates\n");
wacom             284 drivers/input/tablet/wacom_serial4.c static void wacom_handle_response(struct wacom *wacom)
wacom             286 drivers/input/tablet/wacom_serial4.c 	if (wacom->data[0] != '~' || wacom->data[1] != wacom->expect) {
wacom             287 drivers/input/tablet/wacom_serial4.c 		dev_err(&wacom->dev->dev,
wacom             288 drivers/input/tablet/wacom_serial4.c 			"Wacom got an unexpected response: %s\n", wacom->data);
wacom             289 drivers/input/tablet/wacom_serial4.c 		wacom->result = -EIO;
wacom             291 drivers/input/tablet/wacom_serial4.c 		wacom->result = 0;
wacom             293 drivers/input/tablet/wacom_serial4.c 		switch (wacom->data[1]) {
wacom             295 drivers/input/tablet/wacom_serial4.c 			wacom_handle_model_response(wacom);
wacom             298 drivers/input/tablet/wacom_serial4.c 			wacom_handle_configuration_response(wacom);
wacom             301 drivers/input/tablet/wacom_serial4.c 			wacom_handle_coordinates_response(wacom);
wacom             306 drivers/input/tablet/wacom_serial4.c 	complete(&wacom->cmd_done);
wacom             309 drivers/input/tablet/wacom_serial4.c static void wacom_handle_packet(struct wacom *wacom)
wacom             315 drivers/input/tablet/wacom_serial4.c 	in_proximity_p = wacom->data[0] & 0x40;
wacom             316 drivers/input/tablet/wacom_serial4.c 	stylus_p = wacom->data[0] & 0x20;
wacom             317 drivers/input/tablet/wacom_serial4.c 	button = (wacom->data[3] & 0x78) >> 3;
wacom             318 drivers/input/tablet/wacom_serial4.c 	x = (wacom->data[0] & 3) << 14 | wacom->data[1]<<7 | wacom->data[2];
wacom             319 drivers/input/tablet/wacom_serial4.c 	y = (wacom->data[3] & 3) << 14 | wacom->data[4]<<7 | wacom->data[5];
wacom             322 drivers/input/tablet/wacom_serial4.c 		z = wacom->data[6] & 0x7f;
wacom             323 drivers/input/tablet/wacom_serial4.c 		if (wacom->extra_z_bits >= 1)
wacom             324 drivers/input/tablet/wacom_serial4.c 			z = z << 1 | (wacom->data[3] & 0x4) >> 2;
wacom             325 drivers/input/tablet/wacom_serial4.c 		if (wacom->extra_z_bits > 1)
wacom             326 drivers/input/tablet/wacom_serial4.c 			z = z << 1 | (wacom->data[0] & 0x4) >> 2;
wacom             327 drivers/input/tablet/wacom_serial4.c 		z = z ^ (0x40 << wacom->extra_z_bits);
wacom             333 drivers/input/tablet/wacom_serial4.c 		tool = (button & wacom->eraser_mask) ? ERASER : STYLUS;
wacom             337 drivers/input/tablet/wacom_serial4.c 	if (tool != wacom->tool && wacom->tool != 0) {
wacom             338 drivers/input/tablet/wacom_serial4.c 		input_report_key(wacom->dev, tools[wacom->tool].input_id, 0);
wacom             339 drivers/input/tablet/wacom_serial4.c 		input_sync(wacom->dev);
wacom             341 drivers/input/tablet/wacom_serial4.c 	wacom->tool = tool;
wacom             343 drivers/input/tablet/wacom_serial4.c 	input_report_key(wacom->dev, tools[tool].input_id, in_proximity_p);
wacom             344 drivers/input/tablet/wacom_serial4.c 	input_report_abs(wacom->dev, ABS_MISC,
wacom             346 drivers/input/tablet/wacom_serial4.c 	input_report_abs(wacom->dev, ABS_X, x);
wacom             347 drivers/input/tablet/wacom_serial4.c 	input_report_abs(wacom->dev, ABS_Y, y);
wacom             348 drivers/input/tablet/wacom_serial4.c 	input_report_abs(wacom->dev, ABS_PRESSURE, z);
wacom             350 drivers/input/tablet/wacom_serial4.c 		input_report_key(wacom->dev, BTN_TOUCH, button & 1);
wacom             351 drivers/input/tablet/wacom_serial4.c 		input_report_key(wacom->dev, BTN_STYLUS, button & 2);
wacom             352 drivers/input/tablet/wacom_serial4.c 		input_report_key(wacom->dev, BTN_STYLUS2, button & 4);
wacom             354 drivers/input/tablet/wacom_serial4.c 		input_report_key(wacom->dev, BTN_LEFT, button & 1);
wacom             355 drivers/input/tablet/wacom_serial4.c 		input_report_key(wacom->dev, BTN_RIGHT, button & 2);
wacom             356 drivers/input/tablet/wacom_serial4.c 		input_report_key(wacom->dev, BTN_MIDDLE, button & 4);
wacom             358 drivers/input/tablet/wacom_serial4.c 		z = (wacom->data[6] & 0x30) >> 4;
wacom             359 drivers/input/tablet/wacom_serial4.c 		if (wacom->data[6] & 0x40)
wacom             361 drivers/input/tablet/wacom_serial4.c 		input_report_rel(wacom->dev, REL_WHEEL, z);
wacom             363 drivers/input/tablet/wacom_serial4.c 	input_sync(wacom->dev);
wacom             366 drivers/input/tablet/wacom_serial4.c static void wacom_clear_data_buf(struct wacom *wacom)
wacom             368 drivers/input/tablet/wacom_serial4.c 	memset(wacom->data, 0, DATA_SIZE);
wacom             369 drivers/input/tablet/wacom_serial4.c 	wacom->idx = 0;
wacom             375 drivers/input/tablet/wacom_serial4.c 	struct wacom *wacom = serio_get_drvdata(serio);
wacom             378 drivers/input/tablet/wacom_serial4.c 		wacom->idx = 0;
wacom             389 drivers/input/tablet/wacom_serial4.c 	if (data == '\r' && !(wacom->data[0] & 0x80)) {
wacom             390 drivers/input/tablet/wacom_serial4.c 		wacom_handle_response(wacom);
wacom             391 drivers/input/tablet/wacom_serial4.c 		wacom_clear_data_buf(wacom);
wacom             396 drivers/input/tablet/wacom_serial4.c 	if (wacom->idx > (DATA_SIZE - 2)) {
wacom             397 drivers/input/tablet/wacom_serial4.c 		dev_dbg(&wacom->dev->dev,
wacom             398 drivers/input/tablet/wacom_serial4.c 			"throwing away %d bytes of garbage\n", wacom->idx);
wacom             399 drivers/input/tablet/wacom_serial4.c 		wacom_clear_data_buf(wacom);
wacom             401 drivers/input/tablet/wacom_serial4.c 	wacom->data[wacom->idx++] = data;
wacom             403 drivers/input/tablet/wacom_serial4.c 	if (wacom->idx == PACKET_LENGTH && (wacom->data[0] & 0x80)) {
wacom             404 drivers/input/tablet/wacom_serial4.c 		wacom_handle_packet(wacom);
wacom             405 drivers/input/tablet/wacom_serial4.c 		wacom_clear_data_buf(wacom);
wacom             413 drivers/input/tablet/wacom_serial4.c 	struct wacom *wacom = serio_get_drvdata(serio);
wacom             417 drivers/input/tablet/wacom_serial4.c 	input_unregister_device(wacom->dev);
wacom             418 drivers/input/tablet/wacom_serial4.c 	kfree(wacom);
wacom             431 drivers/input/tablet/wacom_serial4.c static int wacom_send_setup_string(struct wacom *wacom, struct serio *serio)
wacom             435 drivers/input/tablet/wacom_serial4.c 	switch (wacom->dev->id.version) {
wacom             464 drivers/input/tablet/wacom_serial4.c static int wacom_send_and_wait(struct wacom *wacom, struct serio *serio,
wacom             470 drivers/input/tablet/wacom_serial4.c 	wacom->expect = cmd[1];
wacom             471 drivers/input/tablet/wacom_serial4.c 	init_completion(&wacom->cmd_done);
wacom             477 drivers/input/tablet/wacom_serial4.c 	u = wait_for_completion_timeout(&wacom->cmd_done, HZ);
wacom             480 drivers/input/tablet/wacom_serial4.c 		wacom_handle_response(wacom);
wacom             483 drivers/input/tablet/wacom_serial4.c 	wacom->expect = 0;
wacom             484 drivers/input/tablet/wacom_serial4.c 	return wacom->result;
wacom             487 drivers/input/tablet/wacom_serial4.c static int wacom_setup(struct wacom *wacom, struct serio *serio)
wacom             494 drivers/input/tablet/wacom_serial4.c 	err = wacom_send_and_wait(wacom, serio, REQUEST_MODEL_AND_ROM_VERSION,
wacom             499 drivers/input/tablet/wacom_serial4.c 	if (!(wacom->res_x && wacom->res_y)) {
wacom             500 drivers/input/tablet/wacom_serial4.c 		err = wacom_send_and_wait(wacom, serio,
wacom             507 drivers/input/tablet/wacom_serial4.c 	if (!(wacom->max_x && wacom->max_y)) {
wacom             508 drivers/input/tablet/wacom_serial4.c 		err = wacom_send_and_wait(wacom, serio,
wacom             515 drivers/input/tablet/wacom_serial4.c 	return wacom_send_setup_string(wacom, serio);
wacom             520 drivers/input/tablet/wacom_serial4.c 	struct wacom *wacom;
wacom             524 drivers/input/tablet/wacom_serial4.c 	wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL);
wacom             526 drivers/input/tablet/wacom_serial4.c 	if (!wacom || !input_dev)
wacom             529 drivers/input/tablet/wacom_serial4.c 	wacom->dev = input_dev;
wacom             530 drivers/input/tablet/wacom_serial4.c 	wacom->extra_z_bits = 1;
wacom             531 drivers/input/tablet/wacom_serial4.c 	wacom->eraser_mask = 0x04;
wacom             532 drivers/input/tablet/wacom_serial4.c 	wacom->tool = wacom->idx = 0;
wacom             533 drivers/input/tablet/wacom_serial4.c 	snprintf(wacom->phys, sizeof(wacom->phys), "%s/input0", serio->phys);
wacom             534 drivers/input/tablet/wacom_serial4.c 	input_dev->phys = wacom->phys;
wacom             552 drivers/input/tablet/wacom_serial4.c 	serio_set_drvdata(serio, wacom);
wacom             558 drivers/input/tablet/wacom_serial4.c 	err = wacom_setup(wacom, serio);
wacom             563 drivers/input/tablet/wacom_serial4.c 	if (!(wacom->flags & F_COVERS_SCREEN))
wacom             566 drivers/input/tablet/wacom_serial4.c 	if (wacom->flags & F_HAS_STYLUS2)
wacom             569 drivers/input/tablet/wacom_serial4.c 	if (wacom->flags & F_HAS_SCROLLWHEEL)
wacom             572 drivers/input/tablet/wacom_serial4.c 	input_abs_set_res(wacom->dev, ABS_X, wacom->res_x);
wacom             573 drivers/input/tablet/wacom_serial4.c 	input_abs_set_res(wacom->dev, ABS_Y, wacom->res_y);
wacom             574 drivers/input/tablet/wacom_serial4.c 	input_set_abs_params(wacom->dev, ABS_X, 0, wacom->max_x, 0, 0);
wacom             575 drivers/input/tablet/wacom_serial4.c 	input_set_abs_params(wacom->dev, ABS_Y, 0, wacom->max_y, 0, 0);
wacom             576 drivers/input/tablet/wacom_serial4.c 	input_set_abs_params(wacom->dev, ABS_PRESSURE, -1,
wacom             577 drivers/input/tablet/wacom_serial4.c 			     (1 << (7 + wacom->extra_z_bits)) - 1, 0, 0);
wacom             579 drivers/input/tablet/wacom_serial4.c 	err = input_register_device(wacom->dev);
wacom             590 drivers/input/tablet/wacom_serial4.c 	kfree(wacom);