diff options
-rw-r--r-- | goog_touch_interface.c | 60 | ||||
-rw-r--r-- | goog_touch_interface.h | 4 |
2 files changed, 28 insertions, 36 deletions
diff --git a/goog_touch_interface.c b/goog_touch_interface.c index 106f903..aec65f1 100644 --- a/goog_touch_interface.c +++ b/goog_touch_interface.c @@ -662,29 +662,30 @@ void goog_offload_populate_frame(struct goog_touch_interface *gti, ATRACE_END(); } +void goog_update_fw_settings(struct goog_touch_interface *gti) +{ + if (gti->offload.offload_running && gti->offload.config.filter_grip) + gti->cmd.grip_cmd.setting = GTI_GRIP_DISABLE; + else + gti->cmd.grip_cmd.setting = GTI_GRIP_DRIVER_DEFAULT; + ret = goog_process_vendor_cmd(gti, GTI_CMD_SET_GRIP); + if (ret) + GOOG_WARN("unexpected return(%d)!", ret); + + if (gti->offload.offload_running && gti->offload.config.filter_palm) + gti->cmd.palm_cmd.setting = GTI_PALM_DISABLE; + else + gti->cmd.palm_cmd.setting = GTI_PALM_DRIVER_DEFAULT; + ret = goog_process_vendor_cmd(gti, GTI_CMD_SET_PALM); + if (ret) + GOOG_WARN("unexpected return(%d)!", ret); +} + void goog_offload_set_running(struct goog_touch_interface *gti, bool running) { - int ret = 0; if (gti->offload.offload_running != running) { - gti->offload.offload_running = running; - if (running && gti->offload.config.filter_grip) - gti->cmd.grip_cmd.setting = GTI_GRIP_DISABLE; - else - gti->cmd.grip_cmd.setting = GTI_GRIP_DRIVER_DEFAULT; - ret = goog_process_vendor_cmd(gti, GTI_CMD_SET_GRIP); - if (ret) - GOOG_WARN("unexpected return(%d)!", ret); - gti->grip_setting = gti->cmd.grip_cmd.setting; - - if (running && gti->offload.config.filter_palm) - gti->cmd.palm_cmd.setting = GTI_PALM_DISABLE; - else - gti->cmd.palm_cmd.setting = GTI_PALM_DRIVER_DEFAULT; - ret = goog_process_vendor_cmd(gti, GTI_CMD_SET_PALM); - if (ret) - GOOG_WARN("unexpected return(%d)!", ret); - gti->palm_setting = gti->cmd.palm_cmd.setting; + goog_update_fw_settings(gti); } } @@ -975,20 +976,15 @@ void goog_input_set_timestamp( timestamp = ktime_get(); gti->force_legacy_report = true; } else { - /* Once device is from suspend to resume, recover last grip/palm state. */ - if (gti->offload.offload_running && gti->force_legacy_report) { - gti->cmd.grip_cmd.setting = gti->grip_setting; - ret = goog_process_vendor_cmd(gti, GTI_CMD_SET_GRIP); - if (ret) - GOOG_WARN("unexpected return(%d)!", ret); - gti->cmd.palm_cmd.setting = gti->palm_setting; - ret = goog_process_vendor_cmd(gti, GTI_CMD_SET_PALM); - if (ret) - GOOG_WARN("unexpected return(%d)!", ret); - } - if (gti->force_legacy_report) + if (gti->force_legacy_report) { GOOG_DBG("Disable force_legacy_report as usual state.\n"); - gti->force_legacy_report = false; + gti->force_legacy_report = false; + + /* Once device is from suspend to resume, the grip/palm state will + * be reset to default. Update the grip/palm state again. + */ + goog_update_fw_settings(gti); + } } if (goog_input_legacy_report(gti)) diff --git a/goog_touch_interface.h b/goog_touch_interface.h index 0aad0c2..3b9a50f 100644 --- a/goog_touch_interface.h +++ b/goog_touch_interface.h @@ -199,8 +199,6 @@ struct gti_optional_configuration { * @input_timestamp: input timestamp from touch vendor driver. * @mf_downtime: timestamp for motion filter control. * @display_vrefresh: display vrefresh in Hz. - * @grip_setting: current grip setting. - * @palm_setting: current palm setting. * @mf_mode: current motion filter mode. * @mf_state: current motion filter state. * @vendor_dev_pm_state: vendor device pm state. @@ -243,8 +241,6 @@ struct goog_touch_interface { ktime_t mf_downtime; int display_vrefresh; - enum gti_grip_setting grip_setting; - enum gti_palm_setting palm_setting; enum gti_mf_mode mf_mode; enum gti_mf_state mf_state; enum gti_vendor_dev_pm_state vendor_dev_pm_state; |