Skip to content

Commit 8af6529

Browse files
xNombreonettboots
authored andcommitted
goodix: Don't report touch on FOD gesture
This doesn't make sense to report FOD as touch, also, this causes strange issues with AOD. Signed-off-by: Andrzej Perczak <linux@andrzejperczak.com> Signed-off-by: onettboots <blackcocopet@gmail.com>
1 parent aac5fd4 commit 8af6529

1 file changed

Lines changed: 3 additions & 27 deletions

File tree

drivers/input/touchscreen/goodix_driver_gt9886/goodix_ts_gesture.c

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,6 @@ static int gsx_gesture_ist(struct goodix_ts_core *core_data,
358358
struct goodix_ext_module *module)
359359
{
360360
int ret;
361-
int x, y, area, overlapping_area;
362361
unsigned char clear_reg = 0;
363362
unsigned char checksum = 0, temp_data[GSX_KEY_DATA_LEN];
364363
struct goodix_ts_device *ts_dev = core_data->ts_dev;
@@ -401,27 +400,11 @@ static int gsx_gesture_ist(struct goodix_ts_core *core_data,
401400
if ((core_data->udfps_enabled || core_data->aod_status) && FP_Event_Gesture) {
402401
switch (temp_data[2]) {
403402
case 0x46:
404-
x = temp_data[4] | (temp_data[5] << 8);
405-
y = temp_data[6] | (temp_data[7] << 8);
406-
overlapping_area = temp_data[8];
407-
area = temp_data[9];
408-
409403
core_data->udfps_pressed = 1;
410404
sysfs_notify(&core_data->pdev->dev.kobj, NULL, "udfps_pressed");
411-
input_mt_slot(core_data->input_dev, 0);
412-
input_mt_report_slot_state(core_data->input_dev, MT_TOOL_FINGER, true);
413405
input_report_key(core_data->input_dev, BTN_INFO, 1);
414-
/*input_report_key(core_data->input_dev, KEY_INFO, 1);*/
415-
input_report_key(core_data->input_dev, BTN_TOUCH, 1);
416-
input_report_key(core_data->input_dev, BTN_TOOL_FINGER, 1);
417-
input_report_abs(core_data->input_dev, ABS_MT_TOOL_TYPE, MT_TOOL_FINGER);
418-
input_report_abs(core_data->input_dev, ABS_MT_POSITION_X, x);
419-
input_report_abs(core_data->input_dev, ABS_MT_POSITION_Y, y);
420-
input_report_abs(core_data->input_dev, ABS_MT_WIDTH_MINOR, overlapping_area);
421-
/*input_report_abs(core_data->input_dev, ABS_MT_TOUCH_MINOR, area);*/
422406

423407
core_data->fod_pressed = true;
424-
__set_bit(0, &core_data->touch_id);
425408

426409
ts_debug("Gesture report, x=%d, y=%d, overlapping_area=%d, area=%d",
427410
x, y, overlapping_area, area);
@@ -445,16 +428,9 @@ static int gsx_gesture_ist(struct goodix_ts_core *core_data,
445428
case 0xff:
446429
if (core_data->fod_pressed) {
447430
ts_debug("Gesture report up");
448-
input_mt_slot(core_data->input_dev, 0);
449-
input_mt_report_slot_state(core_data->input_dev, MT_TOOL_FINGER, false);
450-
input_report_abs(core_data->input_dev, ABS_MT_WIDTH_MINOR, 0);
451-
input_report_key(core_data->input_dev, BTN_INFO, 0);
452-
/*input_report_key(core_data->input_dev, KEY_INFO, 0);*/
453-
input_report_key(core_data->input_dev, BTN_TOUCH, 0);
454-
input_report_key(core_data->input_dev, BTN_TOOL_FINGER, 0);
455-
input_sync(core_data->input_dev);
456-
__clear_bit(0, &core_data->touch_id);
457-
core_data->fod_pressed = false;
431+
input_report_key(core_data->input_dev, BTN_INFO, 0);
432+
input_sync(core_data->input_dev);
433+
core_data->fod_pressed = false;
458434
}
459435
core_data->sleep_finger = 0;
460436
break;

0 commit comments

Comments
 (0)