summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYen-Chao Chen <davidycchen@google.com>2022-03-25 06:15:20 +0000
committerAndroid Partner Code Review <android-gerrit-partner@google.com>2022-03-25 06:15:20 +0000
commit6d9f8215a27ba4e5879acb13575e62c54969641b (patch)
tree6895f4be83138b32a7b29ea47b110e7cdc633d55
parent2de062b3f8aef923779eb4420840f30b1d362c34 (diff)
parente705cce379e3e4c379004e53e28b0a6196720b54 (diff)
downloadsynaptics_touch-6d9f8215a27ba4e5879acb13575e62c54969641b.tar.gz
Merge "synaptics: Set firmware grip/palm mode depending on offload config" into android13-gs-pixel-5.10
-rw-r--r--syna_tcm2.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/syna_tcm2.c b/syna_tcm2.c
index 8884c6f..c1ab34e 100644
--- a/syna_tcm2.c
+++ b/syna_tcm2.c
@@ -951,15 +951,37 @@ exit:
#if IS_ENABLED(CONFIG_TOUCHSCREEN_OFFLOAD)
static void syna_offload_set_running(struct syna_tcm *tcm, bool running)
{
+ int next_enable_fw_grip = 0;
+ int next_enable_fw_palm = 0;
if (tcm->offload.offload_running != running) {
tcm->offload.offload_running = running;
}
- if (tcm->offload.offload_running == tcm->enable_fw_grip && tcm->enable_fw_grip < 2) {
- tcm->enable_fw_grip = tcm->offload.offload_running ? 0 : 1;
+
+ /*
+ * Disable firmware grip_suppression/palm_rejection when offload is running and
+ * upper layer grip_suppression/palm_rejection is enabled.
+ */
+ 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 (next_enable_fw_grip != tcm->enable_fw_grip && tcm->enable_fw_grip < 2) {
+ tcm->enable_fw_grip = next_enable_fw_grip;
syna_tcm_set_dynamic_config(tcm->tcm_dev,
DC_ENABLE_GRIP_SUPPRESSION,
tcm->enable_fw_grip,
RESP_IN_POLLING);
+ LOGI("%s firmware grip suppression.\n",
+ (tcm->enable_fw_grip == 1) ? "Enable" : "Disable");
+ }
+
+ if (next_enable_fw_palm != tcm->enable_fw_palm && tcm->enable_fw_palm < 2) {
+ tcm->enable_fw_palm = next_enable_fw_palm;
+ syna_tcm_set_dynamic_config(tcm->tcm_dev,
+ DC_ENABLE_PALM_REJECTION,
+ tcm->enable_fw_palm,
+ RESP_IN_POLLING);
+ LOGI("%s firmware palm rejection.\n",
+ (tcm->enable_fw_palm == 1) ? "Enable" : "Disable");
}
}