Searched refs:finger (Results 1 - 46 of 46) sorted by relevance

/linux-4.4.14/drivers/input/mouse/
H A Dfocaltech.c65 #define FOC_ABS 0x6 /* absolute position of one finger */
71 * Current state of a single finger on the touchpad.
74 /* The touchpad has generated a touch event for the finger */
78 * The touchpad has sent position data for the finger. The
79 * flag is 0 when the finger is not active, and there is a
80 * time between the first touch event for the finger and the
81 * following absolute position packet for the finger where the
82 * touchpad has declared the finger to be valid, but we do not
89 * finger.
101 * the array indices correspond to the finger indices returned
108 * 15 value stays until the finger is released.
110 * Since hardware reports width only for last touching finger,
111 * there is no need to store width for every specific finger,
133 struct focaltech_finger_state *finger = &state->fingers[i]; focaltech_report_state() local
134 bool active = finger->active && finger->valid; focaltech_report_state()
145 clamped_x = clamp(finger->x, 0U, priv->x_max); focaltech_report_state()
146 clamped_y = clamp(finger->y, 0U, priv->y_max); focaltech_report_state()
174 * Even when the finger becomes active again, we still focaltech_process_touch_packet()
188 unsigned int finger; focaltech_process_abs_packet() local
190 finger = (packet[1] >> 4) - 1; focaltech_process_abs_packet()
191 if (finger >= FOC_MAX_FINGERS) { focaltech_process_abs_packet()
192 psmouse_err(psmouse, "Invalid finger in abs packet: %d\n", focaltech_process_abs_packet()
193 finger); focaltech_process_abs_packet()
199 state->fingers[finger].x = ((packet[1] & 0xf) << 8) | packet[2]; focaltech_process_abs_packet()
200 state->fingers[finger].y = (packet[3] << 8) | packet[4]; focaltech_process_abs_packet()
202 state->fingers[finger].valid = true; focaltech_process_abs_packet()
218 psmouse_err(psmouse, "First finger in rel packet invalid: %d\n", focaltech_process_rel_packet()
224 * packet only contains one finger. In this case, the second focaltech_process_rel_packet()
225 * finger index in the packet is 0 (we subtract 1 in the lines focaltech_process_rel_packet()
226 * above to create array indices, so the finger will overflow focaltech_process_rel_packet()
H A Dbcm5974.c196 /* trackpad finger data offsets, le16-aligned */
211 /* trackpad finger data block size */
217 /* offset from header to finger struct */
233 /* trackpad finger structure, le16-aligned */
235 __le16 origin; /* zero when switching track finger */
247 __le16 multi; /* one finger: varies, more fingers: constant */
250 /* trackpad finger data size, empirically at least ten fingers */
272 int tp_fsize; /* bytes in single finger block */
273 int tp_delta; /* offset from header to finger struct */
280 struct bcm5974_param p; /* finger pressure limits */
281 struct bcm5974_param w; /* finger width limits */
300 const struct tp_finger *index[MAX_FINGERS]; /* finger index data */
305 /* trackpad finger block data, le16-aligned */ get_tp_finger()
539 /* finger touch area */ setup_events_to_report()
542 /* finger approach area */ setup_events_to_report()
545 /* finger orientation */ setup_events_to_report()
547 /* finger position */ setup_events_to_report()
H A Dnavpoint.c84 int finger; navpoint_packet() local
94 finger = (navpoint->data[1] & 0x01); navpoint_packet()
99 input_report_key(navpoint->input, BTN_TOUCH, finger); navpoint_packet()
103 input_report_key(navpoint->input, BTN_TOOL_FINGER, finger); navpoint_packet()
H A Dalps.h35 * SS4_PACKET_ID_IDLE: There's no finger and no button activity.
36 * SS4_PACKET_ID_ONE: There's one finger on touchpad
110 * V7_PACKET_ID_IDLE: There's no finger and no button activity.
114 * V7_PACKET_ID_NEW: The finger position in slot is not continues from
H A Delantech.h110 * The base position for one finger, v4 hardware
H A Dsentelic.h119 unsigned int last_mt_fgr; /* Last seen finger(multitouch) */
H A Dsynaptics.h70 * 1 0x60 multifinger mode identifies firmware finger counting
193 unsigned int agm_count; /* finger count reported by agm */
H A Dsynaptics.c58 * uses this value to indicate a finger near the edge of the touchpad
511 /* Advanced gesture mode also sends multi finger data */ synaptics_set_advanced_gesture_mode()
741 * finger on the touchpad, which interferes with synaptics_parse_hw_state()
742 * out multi-finger gestures. synaptics_parse_hw_state()
749 * Single-finger touch with pressure above synaptics_parse_hw_state()
753 * sending data even if finger does not synaptics_parse_hw_state()
806 * is used by some firmware to indicate a finger at the edge of synaptics_parse_hw_state()
964 * Update mt_state using the new finger count and current mt_state. synaptics_image_sensor_process()
1031 ; /* Nothing, treat a pen as a single finger */ synaptics_process_packet()
1205 /* Image sensors can signal 4 and 5 finger clicks */ set_input_params()
H A Delantech.c263 /* Discard first 2 reports of one finger, bogus */ elantech_report_absolute_v1()
339 * Same as one finger, except report of more than 3 fingers: elantech_report_absolute_v2()
363 * The coordinate of each finger is reported separately elantech_report_absolute_v2()
364 * with a lower resolution for two finger touches: elantech_report_absolute_v2()
572 /* notify finger state change */ process_packet_status_v4()
721 * packets (1, 2, 3 finger touch) have the same constant bits. With elantech_packet_check_v2()
722 * older ones, 1/3 finger touch packets and 2 finger touch packets elantech_packet_check_v2()
1258 * The firmware reports how many trace lines the finger spans, elantech_set_input_params()
H A Dcypress_ps2.c383 /* finger position */ cypress_set_input_params()
434 /* HSCROLL gets added on to 0 finger count. */ cypress_get_finger_count()
574 /* call packet process for reporting finger leave. */ cypress_validate_byte()
H A Dsynaptics_usb.c35 * setting 1: one int endpoint for absolute finger position
36 * setting 2 (cPad only): one int endpoint for absolute finger position and
145 case 2: /* pen, pretend its a finger */ synusb_report_touchpad()
H A Dcypress_ps2.h148 unsigned int tap:1; /* multi-finger tap detected. */
H A Dappletouch.c221 int fingers_old; /* last reported finger count */
370 * Makes the finger detection more versatile. For example, atp_calculate_abs()
373 * of multiple finger readings while moving around (scrolling). atp_calculate_abs()
375 * Changes the multiple finger detection to counting humps on atp_calculate_abs()
378 * finger reading) to high sensors (finger above atp_calculate_abs()
H A Dsentelic.c730 * Ignore coordinate noise when finger leaving the fsp_process_byte()
749 /* 2nd finger */ fsp_process_byte()
754 * the 1st finger is up fsp_process_byte()
763 /* 1st finger */ fsp_process_byte()
768 * the 2nd finger is up fsp_process_byte()
787 /* no multi-finger information */ fsp_process_byte()
H A Dhgpk.c307 * pen/finger
381 * If this packet says that the finger was removed, reset our position hgpk_process_advanced_packet()
663 * XXX: If a finger is down during this delay, recalibration will hgpk_force_recalibrate()
676 * that a finger was on the touchpad. If so, it's probably hgpk_force_recalibrate()
H A Dcyapa_gen5.c143 * 0 : standard finger;
145 * 2 : finger hover (defined, but not used yet.)
159 * Bit 4 - 0: An arbitrary ID tag associated with a finger
178 * For standard finger type:
188 * the finger and the panel (ABS_MT_TOUCH_MAJOR).
194 * the finger and the panel (ABS_MT_TOUCH_MINOR).
2566 * these output data may caused by user put finger on cyapa_pip_irq_cmd_handler()
2584 * ready event. Because when there was a finger touch cyapa_pip_irq_cmd_handler()
2785 /* Invalid report data length for finger packet. */ cyapa_pip_irq_handler()
H A Dcyapa.h76 * bit 7 - 4: Number of touched finger
H A Dalps.c403 * on either axis as the finger count. alps_process_bitmap()
470 * We only select a corner for the second touch once per 2 finger alps_process_bitmap()
847 /* To prevent the cursor jump when finger lifted */ alps_process_packet_v6()
1040 * NEW packets are send to indicate a discontinuity in the finger alps_decode_packet_v7()
1041 * coordinate reporting. Specifically a finger may have moved from alps_decode_packet_v7()
1050 * the old finger count as that may mismatch with the amount of alps_decode_packet_v7()
H A Delan_i2c_core.c816 * To avoid treating large finger as palm, let's reduce the elan_report_contact()
/linux-4.4.14/drivers/input/touchscreen/
H A Dst1232.c53 struct st1232_ts_finger finger[MAX_FINGERS]; member in struct:st1232_ts_data
60 struct st1232_ts_finger *finger = ts->finger; st1232_ts_read_data() local
84 finger[0].is_valid = buf[2] >> 7; st1232_ts_read_data()
85 finger[1].is_valid = buf[5] >> 7; st1232_ts_read_data()
88 if (finger[0].is_valid) { st1232_ts_read_data()
89 finger[0].x = ((buf[2] & 0x0070) << 4) | buf[3]; st1232_ts_read_data()
90 finger[0].y = ((buf[2] & 0x0007) << 8) | buf[4]; st1232_ts_read_data()
91 finger[0].t = buf[8]; st1232_ts_read_data()
94 if (finger[1].is_valid) { st1232_ts_read_data()
95 finger[1].x = ((buf[5] & 0x0070) << 4) | buf[6]; st1232_ts_read_data()
96 finger[1].y = ((buf[5] & 0x0007) << 8) | buf[7]; st1232_ts_read_data()
97 finger[1].t = buf[9]; st1232_ts_read_data()
106 struct st1232_ts_finger *finger = ts->finger; st1232_ts_irq_handler() local
117 if (!finger[i].is_valid) st1232_ts_irq_handler()
120 input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, finger[i].t); st1232_ts_irq_handler()
121 input_report_abs(input_dev, ABS_MT_POSITION_X, finger[i].x); st1232_ts_irq_handler()
122 input_report_abs(input_dev, ABS_MT_POSITION_Y, finger[i].y); st1232_ts_irq_handler()
H A Dili210x.c20 struct finger { struct
29 struct finger finger[MAX_TOUCHES]; member in struct:touchdata
33 struct finger finger_max;
84 const struct finger *finger; ili210x_report_events() local
89 finger = &touchdata->finger[i]; ili210x_report_events()
94 x = finger->x_low | (finger->x_high << 8); ili210x_report_events()
95 y = finger->y_low | (finger->y_high << 8); ili210x_report_events()
H A Dchipone_icn8318.c36 __u8 pressure; /* Seems more like finger width then pressure really */
39 #define ICN8318_EVENT_NO_DATA 1 /* No finger seen yet since wakeup */
H A Dzforce_ts.c247 static int zforce_scan_frequency(struct zforce_ts *ts, u16 idle, u16 finger, zforce_scan_frequency() argument
253 (finger & 0xff), ((finger >> 8) & 0xff), zforce_scan_frequency()
257 "set scan frequency to (idle: %d, finger: %d, stylus: %d)\n", zforce_scan_frequency()
258 idle, finger, stylus); zforce_scan_frequency()
H A Dwacom_w8001.c158 /* data[5,6] and [11,12] is finger capacity */ parse_multi_touch()
198 /* Early days' single-finger touch models need the following defaults */ parse_touchquery()
340 /* 2 finger touch packet */ w8001_interrupt()
H A Dad7879.c195 * touch sequence, which may be incomplete if finger ad7879_report()
H A Dauo-pixcir-ts.c228 /* use first finger as source for singletouch */ auo_pixcir_interrupt()
H A Dpixcir_i2c_ts.c179 * Last report with no finger up? pixcir_ts_isr()
H A Delants_i2c.c85 /* Header (4 bytes) plus 3 fill 10-finger packets */
H A Dsur40.c70 __le16 pos_x; /* finger tip position */
H A Dwdt87xx_i2c.c49 /* the finger definition of the report event */
/linux-4.4.14/drivers/staging/ste_rmi4/
H A Dsynaptics_i2c_rmi4.c307 int finger; synpatics_rmi4_touchpad_report() local
324 /* get 2D sensor finger data */ synpatics_rmi4_touchpad_report()
326 * First get the finger status field - the size of the finger status synpatics_rmi4_touchpad_report()
327 * field is determined by the number of finger supporte - 2 bits per synpatics_rmi4_touchpad_report()
328 * finger, so the number of registers to read is: synpatics_rmi4_touchpad_report()
331 * determine if a finger is down: synpatics_rmi4_touchpad_report()
332 * 00 = finger not present, synpatics_rmi4_touchpad_report()
333 * 01 = finger present and data accurate, synpatics_rmi4_touchpad_report()
334 * 10 = finger present but data may not be accurate, synpatics_rmi4_touchpad_report()
347 * For each finger present, read the proper number of registers synpatics_rmi4_touchpad_report()
351 for (finger = 0; finger < fingers_supported; finger++) { synpatics_rmi4_touchpad_report()
352 /* determine which data byte the finger status is in */ synpatics_rmi4_touchpad_report()
353 reg = finger/4; synpatics_rmi4_touchpad_report()
354 /* bit shift to get finger's status */ synpatics_rmi4_touchpad_report()
355 finger_shift = (finger % 4) * 2; synpatics_rmi4_touchpad_report()
358 * if finger status indicates a finger is present then synpatics_rmi4_touchpad_report()
359 * read the finger data and report it synpatics_rmi4_touchpad_report()
361 input_mt_slot(input_dev, finger); synpatics_rmi4_touchpad_report()
366 /* Read the finger data */ synpatics_rmi4_touchpad_report()
368 ((finger * data_reg_blk_size) + synpatics_rmi4_touchpad_report()
582 /* Size of just the absolute data for one finger */ synpatics_rmi4_touchpad_detect()
612 * Size of all data including finger status, absolute data for each synpatics_rmi4_touchpad_detect()
613 * finger, relative data and EGR data synpatics_rmi4_touchpad_detect()
616 /* finger status, four fingers per register */ synpatics_rmi4_touchpad_detect()
618 /* absolute data, per finger times number of fingers */ synpatics_rmi4_touchpad_detect()
/linux-4.4.14/include/linux/platform_data/
H A Dpixcir_i2c_ts.h49 * @has_hw_ids: Hardware supports finger tracking IDs
/linux-4.4.14/net/netfilter/
H A Dxt_osf.c42 struct xt_osf_user_finger finger; member in struct:xt_osf_finger
84 memcpy(&kf->finger, f, sizeof(struct xt_osf_user_finger)); xt_osf_add_callback()
87 if (memcmp(&sf->finger, f, sizeof(struct xt_osf_user_finger))) xt_osf_add_callback()
121 if (memcmp(&sf->finger, f, sizeof(struct xt_osf_user_finger))) xt_osf_remove_callback()
230 f = &kf->finger; xt_osf_match_packet()
/linux-4.4.14/drivers/input/misc/
H A Dideapad_slidebar.c38 * STD 'heartbeat' lights follow the finger
39 * ONMOV no lights lights follow the finger
40 * LAST at last pos lights follow the finger
H A Dad714x.c650 * If only one finger is used to activate the touch pad then only 1 peak will be
/linux-4.4.14/include/linux/input/
H A Dmt.h22 #define INPUT_MT_SEMI_MT 0x0010 /* semi-mt device, finger count handled manually */
/linux-4.4.14/drivers/input/
H A Dinput-mt.c28 * @dev: input device supporting MT events and finger tracking
186 * @use_count: report number of active contacts as finger count
189 * ABS_PRESSURE. Touchpad finger count is emulated if use_count is true.
/linux-4.4.14/drivers/hid/
H A Dhid-logitech-hidpp.c707 struct hidpp_touchpad_raw_xy_finger *finger) hidpp_touchpad_touch_event()
712 finger->x = x_m << 6 | data[1]; hidpp_touchpad_touch_event()
713 finger->y = y_m << 6 | data[3]; hidpp_touchpad_touch_event()
715 finger->contact_type = data[0] >> 6; hidpp_touchpad_touch_event()
716 finger->contact_status = data[2] >> 6; hidpp_touchpad_touch_event()
718 finger->z = data[4]; hidpp_touchpad_touch_event()
719 finger->area = data[5]; hidpp_touchpad_touch_event()
720 finger->finger_id = data[6] >> 4; hidpp_touchpad_touch_event()
706 hidpp_touchpad_touch_event(u8 *data, struct hidpp_touchpad_raw_xy_finger *finger) hidpp_touchpad_touch_event() argument
H A Dhid-ntrig.c454 * - dual pen/finger single touch
455 * - finger multitouch, pen not working
622 * report received in a finger event. We want ntrig_event()
628 * finger in single touch mode. ntrig_event()
672 * finger. ntrig_event()
723 * if there is a finger on the screen or ntrig_event()
H A Dwacom_sys.c195 bool finger = WACOM_FINGER_FIELD(field); wacom_usage_mapping() local
205 else if (finger) wacom_usage_mapping()
216 if (finger && !features->touch_max) wacom_usage_mapping()
223 if (finger) { wacom_usage_mapping()
234 if (finger) { wacom_usage_mapping()
H A Dhid-rmi.c90 * @max_fingers: maximum finger count reported by the device
423 "%s %s: Detected incomplete finger report. Finger reports may occasionally get dropped on this platform.\n", rmi_f11_input_event()
426 hid_dbg(hdev, "Incomplete finger report\n"); rmi_f11_input_event()
H A Dhid-multitouch.c80 bool inrange_state; /* is the finger in proximity of the sensor? */
635 /* this finger is in proximity of the sensor */ mt_complete_slot()
/linux-4.4.14/drivers/pinctrl/
H A Dcore.h134 * @name: a name for the pin, e.g. the name of the pin/pad/finger on a
H A Dpinctrl-u300.c172 * edges of the silicon, finger by finger. LTCORNER upper left is pad 0.
/linux-4.4.14/drivers/scsi/
H A Ddtc.c257 * reads. So better not enable them until I finger it out. */ dtc_detect()
/linux-4.4.14/fs/xfs/libxfs/
H A Dxfs_attr.c1154 * Tie a string around our finger to remind us where we are. xfs_attr_node_removename()

Completed in 1082 milliseconds