Lines Matching +full:0 +full:x0216
26 * 0 <= x <= (xsensors - 1) * xfact
27 * 0 <= y <= (ysensors - 1) * yfact
73 .fuzz = 0,
83 .fuzz = 0,
93 .fuzz = 0,
101 .idVendor = 0x05ac, /* Apple */ \
103 .bInterfaceClass = 0x03, \
104 .bInterfaceProtocol = 0x02, \
116 ATP_DEVICE(0x020e, fountain_info), /* FOUNTAIN ANSI */
117 ATP_DEVICE(0x020f, fountain_info), /* FOUNTAIN ISO */
118 ATP_DEVICE(0x030a, fountain_info), /* FOUNTAIN TP ONLY */
119 ATP_DEVICE(0x030b, geyser1_info), /* GEYSER 1 TP ONLY */
122 ATP_DEVICE(0x0214, geyser2_info), /* GEYSER 2 ANSI */
123 ATP_DEVICE(0x0215, geyser2_info), /* GEYSER 2 ISO */
124 ATP_DEVICE(0x0216, geyser2_info), /* GEYSER 2 JIS */
127 ATP_DEVICE(0x0217, geyser3_info), /* GEYSER 3 ANSI */
128 ATP_DEVICE(0x0218, geyser3_info), /* GEYSER 3 ISO */
129 ATP_DEVICE(0x0219, geyser3_info), /* GEYSER 3 JIS */
132 ATP_DEVICE(0x021a, geyser4_info), /* GEYSER 4 ANSI */
133 ATP_DEVICE(0x021b, geyser4_info), /* GEYSER 4 ISO */
134 ATP_DEVICE(0x021c, geyser4_info), /* GEYSER 4 JIS */
137 ATP_DEVICE(0x0229, geyser4_info), /* GEYSER 4 HF ANSI */
138 ATP_DEVICE(0x022a, geyser4_info), /* GEYSER 4 HF ISO */
139 ATP_DEVICE(0x022b, geyser4_info), /* GEYSER 4 HF JIS */
174 #define ATP_GEYSER_MODE_REQUEST_VALUE 0x300
175 #define ATP_GEYSER_MODE_REQUEST_INDEX 0
176 #define ATP_GEYSER_MODE_VENDOR_VALUE 0x04
189 ATP_STATUS_BUTTON = BIT(0),
223 for (__i = 0; __i < ATP_XSENSORS + ATP_YSENSORS; __i++) \
232 } while (0)
274 size = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), in atp_geyser_init()
282 for (i = 0; i < 8; i++) in atp_geyser_init()
291 data[0] = ATP_GEYSER_MODE_VENDOR_VALUE; in atp_geyser_init()
293 size = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), in atp_geyser_init()
301 for (i = 0; i < 8; i++) in atp_geyser_init()
308 ret = 0; in atp_geyser_init()
345 int pcum = 0, psum = 0; in atp_calculate_abs()
346 int is_increasing = 0; in atp_calculate_abs()
348 *fingers = 0; in atp_calculate_abs()
350 for (i = 0; i < nb_sensors; i++) { in atp_calculate_abs()
353 is_increasing = 0; in atp_calculate_abs()
374 } else if (i > 0 && (xy_sensors[i - 1] - xy_sensors[i] > threshold)) { in atp_calculate_abs()
375 is_increasing = 0; in atp_calculate_abs()
380 return 0; in atp_calculate_abs()
391 memset(dev->smooth, 0, 4 * sizeof(dev->smooth[0])); in atp_calculate_abs()
393 for (i = 0; i < nb_sensors; i++) in atp_calculate_abs()
395 memset(&dev->smooth[nb_sensors + 4], 0, 4 * sizeof(dev->smooth[0])); in atp_calculate_abs()
397 for (pass = 0; pass < 4; pass++) { in atp_calculate_abs()
399 dev->smooth_tmp[0] = (dev->smooth[0] + dev->smooth[1]) / 2; in atp_calculate_abs()
413 for (i = 0; i < nb_sensors + 8; i++) { in atp_calculate_abs()
415 * Skip values if they're small enough to be truncated to 0 in atp_calculate_abs()
418 if ((dev->smooth[i] >> ATP_SCALE) > 0) { in atp_calculate_abs()
424 if (psum > 0) { in atp_calculate_abs()
429 return 0; in atp_calculate_abs()
441 #define ATP_URB_STATUS_SUCCESS 0
451 case 0: in atp_status_check()
482 dev->data[0], dev->urb->actual_length); in atp_status_check()
500 input_set_abs_params(dev->input, ABS_X, 0, in atp_detect_size()
503 dev->info->fuzz, 0); in atp_detect_size()
530 memset(dev->xy_cur, 0, sizeof(dev->xy_cur)); in atp_complete_geyser_1_2()
539 for (i = 0, j = 19; i < 20; i += 2, j += 3) { in atp_complete_geyser_1_2()
545 for (i = 0, j = 1; i < 9; i += 2, j += 3) { in atp_complete_geyser_1_2()
550 for (i = 0; i < 8; i++) { in atp_complete_geyser_1_2()
552 dev->xy_cur[i + 0] = dev->data[5 * i + 2]; in atp_complete_geyser_1_2()
582 for (i = 0; i < ATP_XSENSORS + ATP_YSENSORS; i++) { in atp_complete_geyser_1_2()
588 if (dev->xy_acc[i] < 0) in atp_complete_geyser_1_2()
589 dev->xy_acc[i] = 0; in atp_complete_geyser_1_2()
596 x = atp_calculate_abs(dev, 0, ATP_XSENSORS, in atp_complete_geyser_1_2()
629 dev->fingers_old = 0; in atp_complete_geyser_1_2()
630 input_report_key(dev->input, BTN_TOUCH, 0); in atp_complete_geyser_1_2()
631 input_report_abs(dev->input, ABS_PRESSURE, 0); in atp_complete_geyser_1_2()
632 atp_report_fingers(dev->input, 0); in atp_complete_geyser_1_2()
635 memset(dev->xy_acc, 0, sizeof(dev->xy_acc)); in atp_complete_geyser_1_2()
676 for (i = 0, j = 19; i < 20; i += 2, j += 3) { in atp_complete_geyser_3_4()
681 for (i = 0, j = 1; i < 9; i += 2, j += 3) { in atp_complete_geyser_3_4()
697 for (i = 0; i < ATP_XSENSORS + ATP_YSENSORS; i++) { in atp_complete_geyser_3_4()
709 if (dev->xy_acc[i] < 0) in atp_complete_geyser_3_4()
710 dev->xy_acc[i] = 0; in atp_complete_geyser_3_4()
715 x = atp_calculate_abs(dev, 0, ATP_XSENSORS, in atp_complete_geyser_3_4()
749 dev->fingers_old = 0; in atp_complete_geyser_3_4()
750 input_report_key(dev->input, BTN_TOUCH, 0); in atp_complete_geyser_3_4()
751 input_report_abs(dev->input, ABS_PRESSURE, 0); in atp_complete_geyser_3_4()
752 atp_report_fingers(dev->input, 0); in atp_complete_geyser_3_4()
755 memset(dev->xy_acc, 0, sizeof(dev->xy_acc)); in atp_complete_geyser_3_4()
780 dev->idlecount = 0; in atp_complete_geyser_3_4()
786 dev->idlecount = 0; in atp_complete_geyser_3_4()
804 return 0; in atp_open()
826 return 0; in atp_handle_geyser()
837 int int_in_endpointAddr = 0; in atp_probe()
844 for (i = 0; i < iface_desc->desc.bNumEndpoints; i++) { in atp_probe()
871 dev->urb = usb_alloc_urb(0, GFP_KERNEL); in atp_probe()
904 input_set_abs_params(input_dev, ABS_X, 0, in atp_probe()
906 dev->info->fuzz, 0); in atp_probe()
907 input_set_abs_params(input_dev, ABS_Y, 0, in atp_probe()
909 dev->info->fuzz, 0); in atp_probe()
910 input_set_abs_params(input_dev, ABS_PRESSURE, 0, ATP_PRESSURE, 0, 0); in atp_probe()
928 return 0; in atp_probe()
969 return 0; in atp_recover()
977 return 0; in atp_suspend()
987 return 0; in atp_resume()