summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2023-04-17 14:20:42 +0000
committerWendly Li <wendlyli@google.com>2023-07-19 06:17:51 +0000
commitf276ef5e12519db650fe3c9223cf0c55f00faecf (patch)
tree7a30e8166c96c0fac2b6adedf38a772fa82a2079
parentb08258e32fb2d4115736e1ec1f4dd7390c9a5faa (diff)
downloadgoodix_touch-f276ef5e12519db650fe3c9223cf0c55f00faecf.tar.gz
touch/goodix: Fix deadlock between irq and wakelock
Bug: 289696186 Test: Check touch works properly Change-Id: I91f64e48efd67bdabaa64134e8e395a351d23728 Signed-off-by: Wendly Li <wendlyli@google.com>
-rw-r--r--goodix_ts_core.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/goodix_ts_core.c b/goodix_ts_core.c
index b4a8c7f..e42836c 100644
--- a/goodix_ts_core.c
+++ b/goodix_ts_core.c
@@ -2672,7 +2672,11 @@ static int goodix_ts_resume(struct goodix_ts_core *core_data)
goodix_set_pinctrl_state(core_data, PINCTRL_MODE_ACTIVE);
atomic_set(&core_data->suspended, 0);
- hw_ops->irq_enable(core_data, false);
+ /* [GOOG]
+ * This will cause a deadlock with wakelock. Since we already disable irq
+ * when touch is suspended, we don't need to disable irq here again.
+ */
+ //hw_ops->irq_enable(core_data, false);
mutex_lock(&goodix_modules.mutex);
if (!list_empty(&goodix_modules.head)) {