summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuper Liu <supercjliu@google.com>2023-04-20 07:04:52 +0000
committerSuper Liu <supercjliu@google.com>2023-04-20 08:21:07 +0000
commitf101de07c67c7d01ee27c4fa4450aa0805483930 (patch)
treefa6d78b5d7be05a5e0ccc25063867ade9c9b0499
parentfce13c302ba29aa3ec0b97646acdf8c144cfd765 (diff)
downloadcommon-f101de07c67c7d01ee27c4fa4450aa0805483930.tar.gz
gti: Acquire the wakelock before applying FW settingsandroid-u-beta-2_r0.4android-u-beta-2_r0.3android-u-beta-2_r0.2
Bug: 278972191 Change-Id: Ib743a289289a59a031699a951b65cc987c8bf32b Signed-off-by: Super Liu <supercjliu@google.com>
-rw-r--r--goog_touch_interface.c13
-rw-r--r--goog_touch_interface.h1
2 files changed, 13 insertions, 1 deletions
diff --git a/goog_touch_interface.c b/goog_touch_interface.c
index a184a0d..db2ab83 100644
--- a/goog_touch_interface.c
+++ b/goog_touch_interface.c
@@ -2050,9 +2050,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;
@@ -2108,6 +2115,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)
@@ -2218,7 +2229,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 9145538..09f8245 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 {