mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
Update zero tap down and up logic
Add zero tap finger up event for framework to improve FOD zero type performance. Change-Id: I35bae1931121431943e0a991a2adfd5cc47f8a7d Signed-off-by: Yan Zhang <zhangy26@motorola.com> Reviewed-on: https://gerrit.mot.com/2186508 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wei Deng <dengwei1@motorola.com> Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
673504b808
commit
5f767e535c
2 changed files with 25 additions and 18 deletions
|
|
@ -374,7 +374,7 @@ static int gsx_gesture_ist(struct goodix_ts_core *cd,
|
|||
#if defined(CONFIG_INPUT_TOUCHSCREEN_MMI)
|
||||
struct gesture_event_data mmi_event;
|
||||
static unsigned long start = 0;
|
||||
int fod_down_interval;
|
||||
int fod_down_interval = 0;
|
||||
int fod_down = cd->ts_event.gesture_data[0];
|
||||
#endif
|
||||
if (atomic_read(&cd->suspended) == 0 || cd->gesture_type == 0)
|
||||
|
|
@ -424,32 +424,34 @@ static int gsx_gesture_ist(struct goodix_ts_core *cd,
|
|||
mmi_event.evcode = 2;
|
||||
mmi_event.evdata.x= 540;
|
||||
mmi_event.evdata.y= 2164;
|
||||
ts_info("get FOD-DOWN gesture %d fod_down_interval=%d",fod_down,fod_down_interval);
|
||||
if(fod_down_interval < 250)
|
||||
{
|
||||
if( fod_down) {
|
||||
goto fod_exit;
|
||||
}
|
||||
} else {
|
||||
|
||||
ts_debug("Get FOD-DOWN gesture down:%d interval:%d",fod_down,fod_down_interval);
|
||||
if(fod_down_interval > 2000)
|
||||
fod_down = 0;
|
||||
if(fod_down_interval > 0 && fod_down_interval < 250 && fod_down) {
|
||||
goto gesture_ist_exit;
|
||||
}
|
||||
start = jiffies;
|
||||
if(fod_down <4) {
|
||||
//maximum allow send down event 7 times
|
||||
if(fod_down < 6) {
|
||||
ret = cd->imports->report_gesture(&mmi_event);
|
||||
if (!ret)
|
||||
PM_WAKEUP_EVENT(cd->gesture_wakelock, 3000);
|
||||
}
|
||||
}
|
||||
fod_exit:
|
||||
fod_down++;
|
||||
goto gesture_ist_exit;
|
||||
}else if(cd->gesture_type & GESTURE_FOD_PRESS && gs_event.gesture_type == GOODIX_GESTURE_FOD_UP) {
|
||||
ts_info("get FOD-UP gesture");
|
||||
}else if(cd->gesture_type & GESTURE_FOD_PRESS && gs_event.gesture_type == GOODIX_GESTURE_FOD_UP) {
|
||||
ts_info("Get FOD-UP gesture");
|
||||
mmi_event.evcode = 3;
|
||||
mmi_event.evdata.x= 0;
|
||||
mmi_event.evdata.y= 0;
|
||||
ret = cd->imports->report_gesture(&mmi_event);
|
||||
if (!ret)
|
||||
PM_WAKEUP_EVENT(cd->gesture_wakelock, 500);
|
||||
fod_down = 0;
|
||||
} else {
|
||||
ts_debug("not support gesture type[%02X] to wakeup, suspended =%d", gs_event.gesture_type, atomic_read(&cd->suspended));
|
||||
fod_down = 0;
|
||||
} else {
|
||||
ts_debug("not support gesture type[%02X] to wakeup, suspended =%d", gs_event.gesture_type, atomic_read(&cd->suspended));
|
||||
fod_down = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
switch (gs_event.gesture_type) {
|
||||
|
|
|
|||
|
|
@ -223,7 +223,11 @@ static int ts_mmi_gesture_handler(struct gesture_event_data *gev)
|
|||
input_report_abs(sensor_pdata->input_sensor_dev, ABS_X, gev->evdata.x);
|
||||
input_report_abs(sensor_pdata->input_sensor_dev, ABS_Y, gev->evdata.y);
|
||||
pr_info("%s: zero tap; x=%x, y=%x\n", __func__, gev->evdata.x, gev->evdata.y);
|
||||
break;
|
||||
break;
|
||||
case 3:
|
||||
key_code = KEY_F3;
|
||||
pr_info("%s: zero tap up\n", __func__);
|
||||
break;
|
||||
default:
|
||||
need2report = false;
|
||||
pr_info("%s: unknown id=%x\n", __func__, gev->evcode);
|
||||
|
|
@ -483,6 +487,7 @@ int ts_mmi_gesture_init(struct ts_mmi_dev *touch_cdev)
|
|||
__set_bit(EV_KEY, sensor_input_dev->evbit);
|
||||
__set_bit(KEY_F1, sensor_input_dev->keybit);
|
||||
__set_bit(KEY_F2, sensor_input_dev->keybit);
|
||||
__set_bit(KEY_F3, sensor_input_dev->keybit);
|
||||
__set_bit(EV_ABS, sensor_input_dev->evbit);
|
||||
__set_bit(EV_SYN, sensor_input_dev->evbit);
|
||||
/* TODO: fill in real screen resolution */
|
||||
|
|
|
|||
Loading…
Reference in a new issue