summaryrefslogtreecommitdiff
path: root/goodix_brl_hw.c
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2022-07-07 07:49:17 +0000
committerWendly Li <wendlyli@google.com>2022-07-21 05:30:40 +0000
commite788d534c077d25514338001eae58ce4918649bc (patch)
tree0e92ed76e0645d6a52bd7da8d486edaba5ed05f2 /goodix_brl_hw.c
parent178ef0cefe5c2e2bc636a00fad7250cb69438ad5 (diff)
downloadgoodix_touch-e788d534c077d25514338001eae58ce4918649bc.tar.gz
touch/goodix: Support finger leaves event for UDFPS.
Bug: 214118944 Bug: 239381635 Test: LHBM is off right after LPTW finger leaves. Change-Id: I95615fc8b75d15db41765d9320aa68d9d016e1a2 Signed-off-by: Wendly Li <wendlyli@google.com>
Diffstat (limited to 'goodix_brl_hw.c')
-rw-r--r--goodix_brl_hw.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/goodix_brl_hw.c b/goodix_brl_hw.c
index 8b6755c..bd58ce1 100644
--- a/goodix_brl_hw.c
+++ b/goodix_brl_hw.c
@@ -1252,8 +1252,9 @@ static int brl_event_handler(
ts_event->event_type = EVENT_GESTURE;
if (event_data->status_changed)
ts_event->event_type |= EVENT_STATUS;
- ts_event->gesture_type = gesture->gesture_type;
- memcpy(ts_event->gesture_data, gesture->data,
+ ts_event->gesture_data.gesture_type = gesture->gesture_type;
+ ts_event->gesture_data.touches = gesture->touches;
+ memcpy(ts_event->gesture_data.data, gesture->data,
GOODIX_GESTURE_DATA_LEN);
}
@@ -1486,8 +1487,22 @@ exit:
return ret;
}
+#define GOODIX_GET_SCAN_MODE_ADDR 0x10219
+int brl_get_scan_mode(struct goodix_ts_core *cd, enum raw_scan_mode* mode)
+{
+ int ret = 0;
+
+ ret = cd->hw_ops->read(cd, GOODIX_GET_SCAN_MODE_ADDR, mode, 1);
+ if (ret != 0) {
+ ts_err("failed to get scan mode, ret: %d", ret);
+ return ret;
+ }
+
+ return 0;
+}
+
#define GOODIX_CMD_SET_SCAN_MODE 0x9F
-int brl_set_scan_mode(struct goodix_ts_core *cd, int mode)
+int brl_set_scan_mode(struct goodix_ts_core *cd, enum raw_scan_mode mode)
{
struct goodix_ts_cmd cmd;
@@ -1653,6 +1668,7 @@ static struct goodix_ts_hw_ops brl_hw_ops = {
.after_event_handler = brl_after_event_handler,
.get_capacitance_data = brl_get_capacitance_data,
.ping = brl_dev_confirm,
+ .get_scan_mode = brl_get_scan_mode,
.set_scan_mode = brl_set_scan_mode,
.set_continuously_report_enabled = brl_set_continuously_report_enabled,
.set_heatmap_enabled = brl_set_heatmap_enabled,