Lines Matching refs:features
172 struct wacom_features *features = &wacom->features;
210 if (features->pressure_max > 255)
212 pressure += (features->pressure_max + 1) / 2;
343 struct wacom_features *features = &wacom->features;
352 if (features->type == GRAPHIRE_BT) {
393 if (features->type == GRAPHIRE_BT)
405 if (features->type == WACOM_G4 ||
406 features->type == WACOM_MO) {
409 } else if (features->type == GRAPHIRE_BT) {
438 switch (features->type) {
484 if (features->type == GRAPHIRE_BT) {
499 struct wacom_features *features = &wacom_wac->features;
504 if (features->type == INTUOSHT2)
515 struct wacom_features *features = &wacom->features;
519 int buttons = 0, nbuttons = features->numbered_buttons;
532 if (features->type >= INTUOS4S && features->type <= INTUOS4L) {
535 } else if (features->type == DTK) {
537 } else if (features->type == WACOM_13HD) {
539 } else if (features->type == WACOM_24HD) {
558 if (features->oPid) {
566 } else if (features->type == WACOM_27QHD) {
573 if (features->oPid) {
584 } else if (features->type == CINTIQ_HYBRID) {
597 } else if (features->type == CINTIQ_COMPANION_2) {
608 } else if (features->type >= INTUOS5S && features->type <= INTUOSPL) {
619 if (features->type == WACOM_21UX2 || features->type == WACOM_22HD) {
623 if (features->type == WACOM_22HD) {
783 struct wacom_features *features = &wacom->features;
785 int idx = (features->type == INTUOS) ? (data[1] & 0x01) : 0;
810 if (features->type >= INTUOS3S)
821 struct wacom_features *features = &wacom->features;
824 int idx = (features->type == INTUOS) ? (data[1] & 0x01) : 0;
849 if (features->type != INTUOSHT2)
856 input_report_abs(input, ABS_DISTANCE, wacom->features.distance_max);
890 struct wacom_features *features = &wacom->features;
893 int idx = (features->type == INTUOS) ? (data[1] & 0x01) : 0;
916 (features->type == WACOM_21UX2)) ||
919 (features->type == INTUOS3 ||
920 features->type == INTUOS3S ||
921 features->type == INTUOS4 ||
922 features->type == INTUOS4S ||
923 features->type == INTUOS5 ||
924 features->type == INTUOS5S ||
925 features->type == INTUOSPM ||
926 features->type == INTUOSPS)) ||
928 (features->type == CINTIQ && !(data[1] & 0x40)))
934 if (features->type < INTUOS3S) {
939 if (features->type == INTUOSHT2)
940 distance = features->distance_max - distance;
952 if (features->pressure_max < 2047)
955 if (features->type != INTUOSHT2) {
976 if (features->type >= INTUOS3S) {
1027 if (features->type >= INTUOS3S && features->type <= INTUOS3L) {
1283 unsigned touch_max = wacom->features.touch_max;
1315 if (wacom->features.type == INTUOSP2_BT ||
1316 wacom->features.type == INTUOSP2S_BT) {
1387 if (wacom->features.type == INTUOSP2_BT ||
1388 wacom->features.type == INTUOSP2S_BT) {
1409 if (wacom->features.type == INTUOSP2_BT ||
1410 wacom->features.type == INTUOSP2S_BT) {
1412 range ? frame[13] : wacom->features.distance_max);
1415 range ? frame[7] : wacom->features.distance_max);
1508 int nbuttons = wacom->features.numbered_buttons;
1583 if (wacom->features.type == INTUOSP2_BT ||
1584 wacom->features.type == INTUOSP2S_BT) {
1612 if (wacom->features.type == WACOM_27QHDT) {
1645 if (wacom->features.type != WACOM_27QHDT) {
1679 if (wacom->features.type == MTTPC || wacom->features.type == MTTPC_B)
1755 if (wacom->features.touch_max > 1 || len > WACOM_PKGLEN_TPC2FG)
1919 struct wacom_features *features = &wacom_wac->features;
1931 fmin += features->offset_left;
1932 fmax -= features->offset_right;
1935 fmin += features->offset_top;
1936 fmax -= features->offset_bottom;
1993 wacom_wac->features.quirks |= WACOM_QUIRK_BATTERY;
2000 wacom_wac->features.quirks |= WACOM_QUIRK_BATTERY;
2007 wacom_wac->features.quirks |= WACOM_QUIRK_BATTERY;
2039 struct wacom_features *features = &wacom_wac->features;
2047 features->device_type |= WACOM_DEVICETYPE_PAD;
2052 features->device_type |= WACOM_DEVICETYPE_PAD;
2057 features->device_type |= WACOM_DEVICETYPE_PAD;
2066 wacom_numbered_button_to_key(features->numbered_buttons),
2068 features->numbered_buttons++;
2069 features->device_type |= WACOM_DEVICETYPE_PAD;
2087 features->device_type |= WACOM_DEVICETYPE_PAD;
2091 features->device_type |= WACOM_DEVICETYPE_PAD;
2095 features->device_type |= WACOM_DEVICETYPE_PAD;
2105 features->device_type |= WACOM_DEVICETYPE_PAD;
2109 features->device_type |= WACOM_DEVICETYPE_PAD;
2113 features->device_type |= WACOM_DEVICETYPE_PAD;
2117 features->device_type |= WACOM_DEVICETYPE_PAD;
2125 features->device_type |= WACOM_DEVICETYPE_PAD;
2132 wacom_numbered_button_to_key(features->numbered_buttons),
2134 features->numbered_buttons++;
2135 features->device_type |= WACOM_DEVICETYPE_PAD;
2146 struct wacom_features *features = &wacom_wac->features;
2231 wacom_update_led(wacom, features->numbered_buttons,
2277 struct wacom_features *features = &wacom_wac->features;
2322 features->quirks |= WACOM_QUIRK_TOOLSERIAL;
2326 features->quirks |= WACOM_QUIRK_SENSE;
2332 if (!(features->quirks & WACOM_QUIRK_AESPEN)) {
2339 if (!(features->device_type & WACOM_DEVICETYPE_DIRECT)) {
2356 struct wacom_features *features = &wacom_wac->features;
2375 if (!(features->quirks & WACOM_QUIRK_SENSE))
2438 if (features->offset_left && value != features->offset_left)
2441 features->offset_left);
2442 features->offset_left = value;
2445 if (features->offset_right && value != features->offset_right)
2448 features->offset_right);
2449 features->offset_right = value;
2452 if (features->offset_top && value != features->offset_top)
2455 features->offset_top);
2456 features->offset_top = value;
2459 if (features->offset_bottom && value != features->offset_bottom)
2462 features->offset_bottom);
2463 features->offset_bottom = value;
2572 unsigned touch_max = wacom_wac->features.touch_max;
2621 bool mt = wacom_wac->features.touch_max > 1;
2668 struct wacom_features *features = &wacom->wacom_wac.features;
2699 if (!features->touch_max) {
2700 features->touch_max = value;
2703 "%d -> %d\n", __func__, features->touch_max, value);
2769 hid_data->num_expected = wacom_wac->features.touch_max;
2780 unsigned touch_max = wacom_wac->features.touch_max;
2805 struct wacom_features *features = &wacom_wac->features;
2808 features->device_type |= WACOM_DEVICETYPE_DIRECT;
2826 if (wacom->wacom_wac.features.type != HID_GENERIC)
2907 if (wacom_wac->features.type != HID_GENERIC)
2951 struct wacom_features *features = &wacom->features;
2970 if (features->quirks & WACOM_QUIRK_BBTOUCH_LOWRES) {
2992 struct wacom_features *features = &wacom->features;
3010 if (features->type >= INTUOSPS && features->type <= INTUOSHT2) {
3036 struct wacom_features *features = &wacom->features;
3038 if (features->type == INTUOSHT || features->type == INTUOSHT2) {
3082 struct wacom_features *features = &wacom->features;
3126 if (data[8] <= features->distance_max)
3127 d = features->distance_max - data[8];
3157 struct wacom_features *features = &wacom->features;
3159 if ((features->type == INTUOSHT2) &&
3160 (features->device_type & WACOM_DEVICETYPE_PEN))
3209 for (id = 0; id < wacom->features.touch_max; id++) {
3301 struct wacom_features *features = &wacom_wac->features;
3307 if ((features->type == INTUOSHT ||
3308 features->type == INTUOSHT2) &&
3310 features->touch_max) {
3324 !(features->quirks & WACOM_QUIRK_BATTERY)) {
3325 features->quirks |= WACOM_QUIRK_BATTERY;
3329 else if ((features->quirks & WACOM_QUIRK_BATTERY) &&
3331 features->quirks &= ~WACOM_QUIRK_BATTERY;
3342 switch (wacom_wac->features.type) {
3482 0, wacom_wac->features.distance_max, wacom_wac->features.distance_fuzz, 0);
3488 struct wacom_features *features = &wacom_wac->features;
3498 input_set_abs_params(input_dev, ABS_TILT_X, -64, 63, features->tilt_fuzz, 0);
3500 input_set_abs_params(input_dev, ABS_TILT_Y, -64, 63, features->tilt_fuzz, 0);
3528 struct wacom_features *features = &wacom->wacom_wac.features;
3531 if (features->type == GRAPHIRE_BT || features->type == WACOM_G4 ||
3532 features->type == DTUS ||
3533 (features->type >= INTUOS3S && features->type <= WACOM_MO)) {
3534 if (features->device_type & WACOM_DEVICETYPE_PEN)
3535 features->device_type |= WACOM_DEVICETYPE_PAD;
3539 if (features->device_type & WACOM_DEVICETYPE_TOUCH && !features->x_max) {
3540 features->x_max = 1023;
3541 features->y_max = 1023;
3550 if ((features->type >= INTUOS5S && features->type <= INTUOSPL) ||
3551 (features->type >= INTUOSHT && features->type <= BAMBOO_PT)) {
3552 if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) {
3553 if (features->touch_max)
3554 features->device_type |= WACOM_DEVICETYPE_TOUCH;
3555 if (features->type >= INTUOSHT && features->type <= BAMBOO_PT)
3556 features->device_type |= WACOM_DEVICETYPE_PAD;
3558 if (features->type == INTUOSHT2) {
3559 features->x_max = features->x_max / 10;
3560 features->y_max = features->y_max / 10;
3563 features->x_max = 4096;
3564 features->y_max = 4096;
3567 else if (features->pktlen == WACOM_PKGLEN_BBTOUCH) {
3568 features->device_type |= WACOM_DEVICETYPE_PAD;
3579 if (features->type == BAMBOO_PEN &&
3580 features->pktlen == WACOM_PKGLEN_BBTOUCH3)
3581 features->device_type |= WACOM_DEVICETYPE_PAD;
3590 if (features->type == BAMBOO_PAD)
3591 features->device_type = WACOM_DEVICETYPE_TOUCH;
3593 if (features->type == REMOTE)
3594 features->device_type = WACOM_DEVICETYPE_PAD;
3596 if (features->type == INTUOSP2_BT ||
3597 features->type == INTUOSP2S_BT) {
3598 features->device_type |= WACOM_DEVICETYPE_PEN |
3601 features->quirks |= WACOM_QUIRK_BATTERY;
3604 if (features->type == INTUOSHT3_BT) {
3605 features->device_type |= WACOM_DEVICETYPE_PEN |
3607 features->quirks |= WACOM_QUIRK_BATTERY;
3610 switch (features->type) {
3633 features->device_type |= WACOM_DEVICETYPE_DIRECT;
3638 features->quirks |= WACOM_QUIRK_BATTERY;
3641 if ((features->type == BAMBOO_PT || features->type == BAMBOO_TOUCH) &&
3642 features->pktlen == WACOM_PKGLEN_BBTOUCH) {
3643 features->x_max <<= 5;
3644 features->y_max <<= 5;
3645 features->x_fuzz <<= 5;
3646 features->y_fuzz <<= 5;
3647 features->quirks |= WACOM_QUIRK_BBTOUCH_LOWRES;
3650 if (features->type == WIRELESS) {
3651 if (features->device_type == WACOM_DEVICETYPE_WL_MONITOR) {
3652 features->quirks |= WACOM_QUIRK_BATTERY;
3656 if (features->type == REMOTE)
3657 features->device_type |= WACOM_DEVICETYPE_WL_MONITOR;
3663 features->quirks &= ~WACOM_QUIRK_TOOLSERIAL;
3681 struct wacom_features *features = &wacom_wac->features;
3683 if (!(features->device_type & WACOM_DEVICETYPE_PEN))
3686 if (features->device_type & WACOM_DEVICETYPE_DIRECT)
3691 if (features->type == HID_GENERIC) {
3701 input_set_abs_params(input_dev, ABS_X, 0 + features->offset_left,
3702 features->x_max - features->offset_right,
3703 features->x_fuzz, 0);
3704 input_set_abs_params(input_dev, ABS_Y, 0 + features->offset_top,
3705 features->y_max - features->offset_bottom,
3706 features->y_fuzz, 0);
3708 features->pressure_max, features->pressure_fuzz, 0);
3711 input_abs_set_res(input_dev, ABS_X, features->x_resolution);
3712 input_abs_set_res(input_dev, ABS_Y, features->y_resolution);
3714 switch (features->type) {
3722 features->distance_max,
3723 features->distance_fuzz, 0);
3779 features->distance_max,
3780 features->distance_fuzz, 0);
3824 if (features->type == INTUOSHT2 ||
3825 features->type == INTUOSHT3_BT) {
3834 features->distance_max,
3835 features->distance_fuzz, 0);
3848 struct wacom_features *features = &wacom_wac->features;
3850 if (!(features->device_type & WACOM_DEVICETYPE_TOUCH))
3853 if (features->device_type & WACOM_DEVICETYPE_DIRECT)
3858 if (features->type == HID_GENERIC)
3865 if (features->touch_max == 1) {
3867 features->x_max, features->x_fuzz, 0);
3869 features->y_max, features->y_fuzz, 0);
3871 features->x_resolution);
3873 features->y_resolution);
3875 else if (features->touch_max > 1) {
3877 features->x_max, features->x_fuzz, 0);
3879 features->y_max, features->y_fuzz, 0);
3881 features->x_resolution);
3883 features->y_resolution);
3886 switch (features->type) {
3921 input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, features->x_max, 0, 0);
3922 input_set_abs_params(input_dev, ABS_MT_TOUCH_MINOR, 0, features->y_max, 0, 0);
3923 input_mt_init_slots(input_dev, features->touch_max, INPUT_MT_POINTER);
3927 input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, features->x_max, 0, 0);
3928 input_set_abs_params(input_dev, ABS_MT_WIDTH_MAJOR, 0, features->x_max, 0, 0);
3929 input_set_abs_params(input_dev, ABS_MT_WIDTH_MINOR, 0, features->y_max, 0, 0);
3946 input_mt_init_slots(input_dev, features->touch_max, INPUT_MT_DIRECT);
3961 if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) {
3964 0, features->x_max, 0, 0);
3967 0, features->y_max, 0, 0);
3969 input_mt_init_slots(input_dev, features->touch_max, INPUT_MT_POINTER);
3973 input_mt_init_slots(input_dev, features->touch_max,
4047 if (wacom->wacom_wac.features.type == WACOM_21UX2)
4052 if (wacom->wacom_wac.features.type == INTUOSP2_BT)
4065 if (wacom->wacom_wac.features.type == WACOM_24HD)
4120 struct wacom_features *features = &wacom_wac->features;
4122 if ((features->type == HID_GENERIC) && features->numbered_buttons > 0)
4123 features->device_type |= WACOM_DEVICETYPE_PAD;
4125 if (!(features->device_type & WACOM_DEVICETYPE_PAD))
4128 if (features->type == REMOTE && input_dev == wacom_wac->pad_input)
4147 wacom_setup_numbered_buttons(input_dev, features->numbered_buttons);
4149 switch (features->type) {
4180 if (!features->oPid)
4195 if (!features->oPid)