summaryrefslogtreecommitdiff
path: root/syna_tcm2.c
diff options
context:
space:
mode:
authordavidycchen <davidycchen@google.com>2022-06-10 09:13:04 +0800
committerdavidycchen <davidycchen@google.com>2022-06-10 09:13:04 +0800
commit1ae90fa9c4db5a427e821d4d19123969387a9f2c (patch)
tree735672fe45f76db689a2cc5cf0bfadf3ef860725 /syna_tcm2.c
parent0a858201a6e0eab282b1c70133a876aa44c6096d (diff)
downloadsynaptics_touch-1ae90fa9c4db5a427e821d4d19123969387a9f2c.tar.gz
synaptics: support dynamic grip configuration
Bug: 235176060 Test: Touch is working fine. Signed-off-by: davidycchen <davidycchen@google.com> Change-Id: I8a5d2403db297cbf4c30655d64066c477c0b244f
Diffstat (limited to 'syna_tcm2.c')
-rw-r--r--syna_tcm2.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/syna_tcm2.c b/syna_tcm2.c
index 5191f01..f610c6e 100644
--- a/syna_tcm2.c
+++ b/syna_tcm2.c
@@ -237,6 +237,16 @@ static void syna_dev_restore_feature_setting(struct syna_tcm *tcm, unsigned int
tcm->hw_if->compression_threhsold,
delay_ms_resp);
+ syna_tcm_set_dynamic_config(tcm->tcm_dev,
+ DC_GRIP_DELTA_THRESHOLD,
+ tcm->hw_if->grip_delta_threshold,
+ delay_ms_resp);
+
+ syna_tcm_set_dynamic_config(tcm->tcm_dev,
+ DC_GRIP_BORDER_THRESHOLD,
+ tcm->hw_if->grip_border_threshold,
+ delay_ms_resp);
+
if (tcm->hw_if->dynamic_report_rate) {
syna_tcm_set_dynamic_config(tcm->tcm_dev,
DC_REPORT_RATE_SWITCH,
@@ -1062,11 +1072,17 @@ static void syna_offload_set_running(struct syna_tcm *tcm, bool running)
}
/*
- * Disable firmware grip_suppression/palm_rejection when offload is running and
- * upper layer grip_suppression/palm_rejection is enabled.
+ * Use the configurations set by touch service if it's running.
+ * Enable the firmware grip and palm if the touch service isn't running.
*/
- next_enable_fw_grip = (running && (tcm->offload.config.filter_grip == 1)) ? 0 : 1;
- next_enable_fw_palm = (running && (tcm->offload.config.filter_palm == 1)) ? 0 : 1;
+ if (running) {
+ next_enable_fw_grip = tcm->offload.config.filter_grip;
+ next_enable_fw_palm = tcm->offload.config.filter_palm;
+ } else {
+ /* Enable the firmware grip and palm when touch */
+ next_enable_fw_grip = 1;
+ next_enable_fw_palm = 1;
+ }
if (next_enable_fw_grip != tcm->enable_fw_grip && tcm->enable_fw_grip < 2) {
tcm->enable_fw_grip = next_enable_fw_grip;