diff options
author | Super Liu <supercjliu@google.com> | 2023-04-20 07:04:52 +0000 |
---|---|---|
committer | Super Liu <supercjliu@google.com> | 2023-04-20 08:08:54 +0000 |
commit | 6b7c5a051af6102abb92550a0f14ff3bb7129095 (patch) | |
tree | a666fa0c26f472a849eff339fe3416cf89fe17ae | |
parent | 683dc9b16e77314b96c63148313c94802aa34425 (diff) | |
download | common-6b7c5a051af6102abb92550a0f14ff3bb7129095.tar.gz |
gti: Acquire the wakelock before applying FW settings
Bug: 278972191
Change-Id: Ib743a289289a59a031699a951b65cc987c8bf32b
Signed-off-by: Super Liu <supercjliu@google.com>
-rw-r--r-- | goog_touch_interface.c | 13 | ||||
-rw-r--r-- | goog_touch_interface.h | 1 |
2 files changed, 13 insertions, 1 deletions
diff --git a/goog_touch_interface.c b/goog_touch_interface.c index 1583293..4265a63 100644 --- a/goog_touch_interface.c +++ b/goog_touch_interface.c @@ -2226,9 +2226,16 @@ void goog_offload_populate_frame(struct goog_touch_interface *gti, void goog_update_fw_settings(struct goog_touch_interface *gti) { + int error; int ret = 0; bool enabled = false; + error = goog_pm_wake_lock_nosync(gti, GTI_PM_WAKELOCK_TYPE_FW_SETTINGS, true); + if (error < 0) { + GOOG_DBG(gti, "Error while obtaining FW_SETTINGS wakelock: %d!\n", error); + return; + } + if(!gti->ignore_grip_update) { if (gti->offload.offload_running && gti->offload.config.filter_grip) gti->cmd.grip_cmd.setting = GTI_GRIP_DISABLE; @@ -2284,6 +2291,10 @@ void goog_update_fw_settings(struct goog_touch_interface *gti) if (ret != 0) GOOG_ERR(gti, "Failed to set report rate!\n"); } + + error = goog_pm_wake_unlock_nosync(gti, GTI_PM_WAKELOCK_TYPE_FW_SETTINGS); + if (error < 0) + GOOG_DBG(gti, "Error while releasing FW_SETTING wakelock: %d!\n", error); } static void goog_offload_set_running(struct goog_touch_interface *gti, bool running) @@ -2394,7 +2405,7 @@ int gti_charger_state_change(struct notifier_block *nb, unsigned long action, ret = power_supply_get_property(psy, POWER_SUPPLY_PROP_PRESENT, &present_val); if (ret < 0) - GOOG_ERR(gti, + GOOG_DBG(gti, "Error while getting power supply property: %d!\n", ret); else if ((u8)present_val.intval != gti->charger_state) { diff --git a/goog_touch_interface.h b/goog_touch_interface.h index c53b911..6aa2716 100644 --- a/goog_touch_interface.h +++ b/goog_touch_interface.h @@ -168,6 +168,7 @@ enum gti_pm_wakelock_type : u32 { GTI_PM_WAKELOCK_TYPE_BUGREPORT = (1 << 5), GTI_PM_WAKELOCK_TYPE_OFFLOAD_REPORT = (1 << 6), GTI_PM_WAKELOCK_TYPE_SENSOR_DATA = (1 << 7), + GTI_PM_WAKELOCK_TYPE_FW_SETTINGS = (1 << 8), }; enum gti_proc_type : u32 { |