Lines Matching refs:features
95 struct wacom_features *features = &wacom_wac->features; in wacom_wac_pen_serial_enforce() local
100 if (wacom_wac->serial[0] || !(features->quirks & WACOM_QUIRK_TOOLSERIAL)) in wacom_wac_pen_serial_enforce()
163 if (wacom->wacom_wac.features.type == BOOTLOADER) in wacom_raw_event()
218 struct wacom_features *features = &wacom->wacom_wac.features; in wacom_hid_usage_quirk() local
240 if (features->type == HID_GENERIC && in wacom_hid_usage_quirk()
276 features->quirks |= WACOM_QUIRK_AESPEN; in wacom_hid_usage_quirk()
301 struct wacom_features *features = &wacom->wacom_wac.features; in wacom_feature_mapping() local
316 if (!features->touch_max) { in wacom_feature_mapping()
325 if (ret == n && features->type == HID_GENERIC) { in wacom_feature_mapping()
328 } else if (ret == 2 && features->type != HID_GENERIC) { in wacom_feature_mapping()
329 features->touch_max = data[1]; in wacom_feature_mapping()
331 features->touch_max = 16; in wacom_feature_mapping()
335 features->touch_max); in wacom_feature_mapping()
434 struct wacom_features *features = &wacom->wacom_wac.features; in wacom_usage_mapping() local
445 features->device_type |= WACOM_DEVICETYPE_PEN; in wacom_usage_mapping()
447 features->device_type |= WACOM_DEVICETYPE_TOUCH; in wacom_usage_mapping()
455 features->x_max = field->logical_maximum; in wacom_usage_mapping()
457 features->x_phy = field->physical_maximum; in wacom_usage_mapping()
458 if ((features->type != BAMBOO_PT) && in wacom_usage_mapping()
459 (features->type != BAMBOO_TOUCH)) { in wacom_usage_mapping()
460 features->unit = field->unit; in wacom_usage_mapping()
461 features->unitExpo = field->unit_exponent; in wacom_usage_mapping()
466 features->y_max = field->logical_maximum; in wacom_usage_mapping()
468 features->y_phy = field->physical_maximum; in wacom_usage_mapping()
469 if ((features->type != BAMBOO_PT) && in wacom_usage_mapping()
470 (features->type != BAMBOO_TOUCH)) { in wacom_usage_mapping()
471 features->unit = field->unit; in wacom_usage_mapping()
472 features->unitExpo = field->unit_exponent; in wacom_usage_mapping()
478 features->pressure_max = field->logical_maximum; in wacom_usage_mapping()
482 if (features->type == HID_GENERIC) in wacom_usage_mapping()
487 struct wacom_features *features) in wacom_post_parse_hid() argument
492 if (features->type == HID_GENERIC) { in wacom_post_parse_hid()
496 features->device_type |= WACOM_DEVICETYPE_DIRECT; in wacom_post_parse_hid()
498 features->device_type &= ~WACOM_DEVICETYPE_DIRECT; in wacom_post_parse_hid()
501 if (features->touch_max > 1) { in wacom_post_parse_hid()
502 if (features->device_type & WACOM_DEVICETYPE_DIRECT) in wacom_post_parse_hid()
504 wacom_wac->features.touch_max, in wacom_post_parse_hid()
508 wacom_wac->features.touch_max, in wacom_post_parse_hid()
515 struct wacom_features *features) in wacom_parse_hid() argument
549 wacom_post_parse_hid(hdev, features); in wacom_parse_hid()
613 struct wacom_features *features) in wacom_bt_query_tablet_data() argument
619 switch (features->type) { in wacom_bt_query_tablet_data()
676 struct wacom_features *features = &wacom_wac->features; in _wacom_query_tablet_data() local
679 return wacom_bt_query_tablet_data(hdev, 1, features); in _wacom_query_tablet_data()
681 if (features->type != HID_GENERIC) { in _wacom_query_tablet_data()
682 if (features->device_type & WACOM_DEVICETYPE_TOUCH) { in _wacom_query_tablet_data()
683 if (features->type > TABLETPC) { in _wacom_query_tablet_data()
687 } else if (features->type == WACOM_24HDT) { in _wacom_query_tablet_data()
690 } else if (features->type == WACOM_27QHDT) { in _wacom_query_tablet_data()
693 } else if (features->type == BAMBOO_PAD) { in _wacom_query_tablet_data()
697 } else if (features->device_type & WACOM_DEVICETYPE_PEN) { in _wacom_query_tablet_data()
698 if (features->type <= BAMBOO_PT) { in _wacom_query_tablet_data()
707 if (features->type == HID_GENERIC) in _wacom_query_tablet_data()
714 struct wacom_features *features) in wacom_retrieve_hid_descriptor() argument
720 features->x_fuzz = 4; in wacom_retrieve_hid_descriptor()
721 features->y_fuzz = 4; in wacom_retrieve_hid_descriptor()
722 features->pressure_fuzz = 0; in wacom_retrieve_hid_descriptor()
723 features->distance_fuzz = 1; in wacom_retrieve_hid_descriptor()
724 features->tilt_fuzz = 1; in wacom_retrieve_hid_descriptor()
732 if (features->type == WIRELESS && intf) { in wacom_retrieve_hid_descriptor()
734 features->device_type = WACOM_DEVICETYPE_WL_MONITOR; in wacom_retrieve_hid_descriptor()
736 features->device_type = WACOM_DEVICETYPE_NONE; in wacom_retrieve_hid_descriptor()
740 wacom_parse_hid(hdev, features); in wacom_retrieve_hid_descriptor()
757 struct wacom_features *features = &wacom->wacom_wac.features; in wacom_are_sibling() local
759 struct wacom_features *sibling_features = &sibling_wacom->wacom_wac.features; in wacom_are_sibling()
760 __u32 oVid = features->oVid ? features->oVid : hdev->vendor; in wacom_are_sibling()
761 __u32 oPid = features->oPid ? features->oPid : hdev->product; in wacom_are_sibling()
764 if (features->oVid != HID_ANY_ID && sibling->vendor != oVid) in wacom_are_sibling()
766 if (features->oPid != HID_ANY_ID && sibling->product != oPid) in wacom_are_sibling()
783 if (features->type != HID_GENERIC) in wacom_are_sibling()
790 if ((features->device_type & WACOM_DEVICETYPE_DIRECT) && in wacom_are_sibling()
798 if (!(features->device_type & WACOM_DEVICETYPE_DIRECT) && in wacom_are_sibling()
803 if ((features->device_type & WACOM_DEVICETYPE_PEN) && in wacom_are_sibling()
808 if ((features->device_type & WACOM_DEVICETYPE_TOUCH) && in wacom_are_sibling()
905 if (wacom_wac->features.device_type & WACOM_DEVICETYPE_TOUCH) in wacom_add_shared_data()
907 else if (wacom_wac->features.device_type & WACOM_DEVICETYPE_PEN) in wacom_add_shared_data()
925 if (wacom->wacom_wac.features.type == REMOTE) in wacom_led_control()
932 else if (wacom->wacom_wac.features.type == INTUOSP2_BT) { in wacom_led_control()
940 if (wacom->wacom_wac.features.type == HID_GENERIC) { in wacom_led_control()
945 } else if ((wacom->wacom_wac.features.type >= INTUOS5S && in wacom_led_control()
946 wacom->wacom_wac.features.type <= INTUOSPL)) { in wacom_led_control()
966 else if (wacom->wacom_wac.features.type == INTUOSP2_BT) { in wacom_led_control()
979 if (wacom->wacom_wac.features.type == WACOM_21UX2 || in wacom_led_control()
980 wacom->wacom_wac.features.type == WACOM_24HD) in wacom_led_control()
1586 if (!(wacom->wacom_wac.features.device_type & WACOM_DEVICETYPE_PAD)) in wacom_initialize_leds()
1590 switch (wacom->wacom_wac.features.type) { in wacom_initialize_leds()
1809 if (wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) in wacom_initialize_battery()
1848 wacom_bt_query_tablet_data(hdev, new_speed, &wacom->wacom_wac.features); in wacom_store_speed()
1995 if (wacom->wacom_wac.features.type != REMOTE) in wacom_initialize_remotes()
2057 input_dev->name = wacom_wac->features.name; in wacom_allocate_input()
2173 static void wacom_set_default_phy(struct wacom_features *features) in wacom_set_default_phy() argument
2175 if (features->x_resolution) { in wacom_set_default_phy()
2176 features->x_phy = (features->x_max * 100) / in wacom_set_default_phy()
2177 features->x_resolution; in wacom_set_default_phy()
2178 features->y_phy = (features->y_max * 100) / in wacom_set_default_phy()
2179 features->y_resolution; in wacom_set_default_phy()
2183 static void wacom_calculate_res(struct wacom_features *features) in wacom_calculate_res() argument
2186 if (!features->unit) { in wacom_calculate_res()
2187 features->unit = 0x11; in wacom_calculate_res()
2188 features->unitExpo = -3; in wacom_calculate_res()
2191 features->x_resolution = wacom_calc_hid_res(features->x_max, in wacom_calculate_res()
2192 features->x_phy, in wacom_calculate_res()
2193 features->unit, in wacom_calculate_res()
2194 features->unitExpo); in wacom_calculate_res()
2195 features->y_resolution = wacom_calc_hid_res(features->y_max, in wacom_calculate_res()
2196 features->y_phy, in wacom_calculate_res()
2197 features->unit, in wacom_calculate_res()
2198 features->unitExpo); in wacom_calculate_res()
2205 if ((wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) && in wacom_battery_work()
2209 else if (!(wacom->wacom_wac.features.quirks & WACOM_QUIRK_BATTERY) && in wacom_battery_work()
2235 struct wacom_features *features = &wacom_wac->features; in wacom_update_name() local
2239 if ((features->type == HID_GENERIC) && !strcmp("Wacom HID", features->name)) { in wacom_update_name()
2250 features->name, wacom->hdev->product); in wacom_update_name()
2272 strlcpy(name, features->name, sizeof(name)); in wacom_update_name()
2305 if (wacom_wac->features.device_type & WACOM_DEVICETYPE_TOUCH) { in wacom_set_shared_values()
2306 wacom_wac->shared->type = wacom_wac->features.type; in wacom_set_shared_values()
2332 struct wacom_features *features = &wacom_wac->features; in wacom_parse_and_register() local
2337 features->pktlen = wacom_compute_pktlen(hdev); in wacom_parse_and_register()
2338 if (features->pktlen > WACOM_PKGLEN_MAX) in wacom_parse_and_register()
2355 if (features->type == BAMBOO_PAD) { in wacom_parse_and_register()
2356 if (features->pktlen == WACOM_PKGLEN_PENABLED) { in wacom_parse_and_register()
2357 features->type = HID_GENERIC; in wacom_parse_and_register()
2358 } else if ((features->pktlen != WACOM_PKGLEN_BPAD_TOUCH) && in wacom_parse_and_register()
2359 (features->pktlen != WACOM_PKGLEN_BPAD_TOUCH_USB)) { in wacom_parse_and_register()
2366 wacom_set_default_phy(features); in wacom_parse_and_register()
2369 wacom_retrieve_hid_descriptor(hdev, features); in wacom_parse_and_register()
2372 if (features->device_type == WACOM_DEVICETYPE_NONE && in wacom_parse_and_register()
2373 features->type != WIRELESS) { in wacom_parse_and_register()
2374 error = features->type == HID_GENERIC ? -ENODEV : 0; in wacom_parse_and_register()
2383 features->device_type |= WACOM_DEVICETYPE_PEN; in wacom_parse_and_register()
2386 wacom_calculate_res(features); in wacom_parse_and_register()
2391 if ((features->type == BAMBOO_PEN) && in wacom_parse_and_register()
2392 ((features->device_type & WACOM_DEVICETYPE_TOUCH) || in wacom_parse_and_register()
2393 (features->device_type & WACOM_DEVICETYPE_PAD))) { in wacom_parse_and_register()
2402 if (!(features->device_type & WACOM_DEVICETYPE_WL_MONITOR) && in wacom_parse_and_register()
2403 (features->quirks & WACOM_QUIRK_BATTERY)) { in wacom_parse_and_register()
2413 if (features->type == HID_GENERIC) in wacom_parse_and_register()
2427 if (wacom->wacom_wac.features.device_type & WACOM_DEVICETYPE_PAD) { in wacom_parse_and_register()
2443 if ((features->type == BAMBOO_TOUCH) && in wacom_parse_and_register()
2444 (features->device_type & WACOM_DEVICETYPE_PEN)) { in wacom_parse_and_register()
2451 if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) { in wacom_parse_and_register()
2524 wacom_wac1->features = in wacom_wireless_work()
2534 if (wacom_wac1->features.touch_max || in wacom_wireless_work()
2535 (wacom_wac1->features.type >= INTUOSHT && in wacom_wireless_work()
2536 wacom_wac1->features.type <= BAMBOO_PT)) { in wacom_wireless_work()
2537 wacom_wac2->features = in wacom_wireless_work()
2789 struct wacom_features *features; in wacom_probe() local
2808 wacom_wac->features = *((struct wacom_features *)id->driver_data); in wacom_probe()
2809 features = &wacom_wac->features; in wacom_probe()
2811 if (features->check_for_hid_type && features->hid_type != hdev->type) in wacom_probe()
2844 if (features->type == BOOTLOADER) { in wacom_probe()
2869 struct wacom_features *features = &wacom_wac->features; in wacom_remove() local
2871 if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) in wacom_remove()
2888 if (wacom->wacom_wac.features.type != REMOTE) in wacom_remove()