Lines Matching refs:finger

55 #define FOC_ABS 0x6 /* absolute position of one finger */
61 * Current state of a single finger on the touchpad.
64 /* The touchpad has generated a touch event for the finger */
68 * The touchpad has sent position data for the finger. The
69 * flag is 0 when the finger is not active, and there is a
70 * time between the first touch event for the finger and the
71 * following absolute position packet for the finger where the
72 * touchpad has declared the finger to be valid, but we do not
79 * finger.
91 * the array indices correspond to the finger indices returned
98 * 15 value stays until the finger is released.
100 * Since hardware reports width only for last touching finger,
101 * there is no need to store width for every specific finger,
123 struct focaltech_finger_state *finger = &state->fingers[i];
124 bool active = finger->active && finger->valid;
135 clamped_x = clamp(finger->x, 0U, priv->x_max);
136 clamped_y = clamp(finger->y, 0U, priv->y_max);
164 * Even when the finger becomes active again, we still
178 unsigned int finger;
180 finger = (packet[1] >> 4) - 1;
181 if (finger >= FOC_MAX_FINGERS) {
182 psmouse_err(psmouse, "Invalid finger in abs packet: %d\n",
183 finger);
189 state->fingers[finger].x = ((packet[1] & 0xf) << 8) | packet[2];
190 state->fingers[finger].y = (packet[3] << 8) | packet[4];
192 state->fingers[finger].valid = true;
208 psmouse_err(psmouse, "First finger in rel packet invalid: %d\n",
214 * packet only contains one finger. In this case, the second
215 * finger index in the packet is 0 (we subtract 1 in the lines
216 * above to create array indices, so the finger will overflow