diff options
author | Yen-Chao Chen <davidycchen@google.com> | 2022-03-25 06:15:20 +0000 |
---|---|---|
committer | Android Partner Code Review <android-gerrit-partner@google.com> | 2022-03-25 06:15:20 +0000 |
commit | 6d9f8215a27ba4e5879acb13575e62c54969641b (patch) | |
tree | 6895f4be83138b32a7b29ea47b110e7cdc633d55 | |
parent | 2de062b3f8aef923779eb4420840f30b1d362c34 (diff) | |
parent | e705cce379e3e4c379004e53e28b0a6196720b54 (diff) | |
download | synaptics_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.c | 26 |
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"); } } |