64035ac463
Prepare for better device categorization by moving everything to testing subdir first. [skip-ci]: chicken-egg problem: passing pmaports CI depends on pmbootstrap MR depends on this MR Related: postmarketos#16
74 lines
3.1 KiB
Diff
74 lines
3.1 KiB
Diff
diff --git a/drivers/input/touchscreen/synaptics_rmi_hw/rmi_f11.c b/drivers/input/touchscreen/synaptics_rmi_hw/rmi_f11.c
|
|
index fc20c596..bd4c77ba 100644
|
|
--- a/drivers/input/touchscreen/synaptics_rmi_hw/rmi_f11.c
|
|
+++ b/drivers/input/touchscreen/synaptics_rmi_hw/rmi_f11.c
|
|
@@ -574,6 +574,7 @@ static void rmi_f11_abs_pos_report(struct f11_2d_sensor *sensor,
|
|
if (prev_state && !finger_state) {
|
|
/* this is a release */
|
|
x = y = z = w_max = w_min = orient = 0;
|
|
+ input_report_abs(sensor->input, ABS_MT_TRACKING_ID, -1);
|
|
} else if (!prev_state && !finger_state) {
|
|
/* nothing to report */
|
|
return;
|
|
@@ -627,38 +628,38 @@ static void rmi_f11_abs_pos_report(struct f11_2d_sensor *sensor,
|
|
if (axis_align->clip_Y_high)
|
|
y = min(axis_align->clip_Y_high, y);
|
|
|
|
- }
|
|
- x = x * x_lcd / sensor->max_x;
|
|
- x = check_scope_x(x);
|
|
- y = y * y_lcd_all / sensor->max_y;
|
|
- pr_debug("%s: f_state[%d]:%d - x:%d y:%d z:%d w_max:%d w_min:%d max_x:%d max_y:%d \n",
|
|
- __func__, n_finger, finger_state, x, y, z, w_max, w_min,sensor->max_x,sensor->max_y);
|
|
+ x = x * x_lcd / sensor->max_x;
|
|
+ x = check_scope_x(x);
|
|
+ y = y * y_lcd_all / sensor->max_y;
|
|
+ pr_debug("%s: f_state[%d]:%d - x:%d y:%d z:%d w_max:%d w_min:%d max_x:%d max_y:%d \n",
|
|
+ __func__, n_finger, finger_state, x, y, z, w_max, w_min,sensor->max_x,sensor->max_y);
|
|
#ifndef CONFIG_RMI4_F11_PEN
|
|
- /* Some UIs ignore W of zero, so we fudge it to 1 for pens. */
|
|
- if (sensor->sens_query.query9.has_pen &&
|
|
- get_tool_type(sensor, finger_state) == MT_TOOL_PEN) {
|
|
- w_max = max(1, w_max);
|
|
- w_min = max(1, w_min);
|
|
- }
|
|
+ /* Some UIs ignore W of zero, so we fudge it to 1 for pens. */
|
|
+ if (sensor->sens_query.query9.has_pen &&
|
|
+ get_tool_type(sensor, finger_state) == MT_TOOL_PEN) {
|
|
+ w_max = max(1, w_max);
|
|
+ w_min = max(1, w_min);
|
|
+ }
|
|
#endif
|
|
|
|
|
|
#ifdef ABS_MT_PRESSURE
|
|
- input_report_abs(sensor->input, ABS_MT_PRESSURE, z);
|
|
+ input_report_abs(sensor->input, ABS_MT_PRESSURE, z);
|
|
#endif
|
|
- input_report_abs(sensor->input, ABS_MT_TOUCH_MAJOR, w_max);
|
|
- input_report_abs(sensor->input, ABS_MT_TOUCH_MINOR, w_min);
|
|
- input_report_abs(sensor->input, ABS_MT_ORIENTATION, orient);
|
|
- input_report_abs(sensor->input, ABS_MT_POSITION_X, x);
|
|
- input_report_abs(sensor->input, ABS_MT_POSITION_Y, y);
|
|
- input_report_abs(sensor->input, ABS_MT_TRACKING_ID, n_finger);
|
|
+ input_report_abs(sensor->input, ABS_MT_TOUCH_MAJOR, w_max);
|
|
+ input_report_abs(sensor->input, ABS_MT_TOUCH_MINOR, w_min);
|
|
+ input_report_abs(sensor->input, ABS_MT_ORIENTATION, orient);
|
|
+ input_report_abs(sensor->input, ABS_MT_POSITION_X, x);
|
|
+ input_report_abs(sensor->input, ABS_MT_POSITION_Y, y);
|
|
+ input_report_abs(sensor->input, ABS_MT_TRACKING_ID, n_finger);
|
|
#ifdef CONFIG_RMI4_F11_PEN
|
|
- if (sensor->sens_query.query9.has_pen) {
|
|
- input_report_abs(sensor->input, ABS_MT_TOOL_TYPE,
|
|
- get_tool_type(sensor, finger_state));
|
|
- }
|
|
+ if (sensor->sens_query.query9.has_pen) {
|
|
+ input_report_abs(sensor->input, ABS_MT_TOOL_TYPE,
|
|
+ get_tool_type(sensor, finger_state));
|
|
+ }
|
|
#endif
|
|
|
|
+ }
|
|
/* MT sync between fingers */
|
|
input_mt_sync(sensor->input);
|
|
sensor->finger_tracker[n_finger] = finger_state;
|