summaryrefslogtreecommitdiff
path: root/goodix_brl_hw.c
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2022-06-13 07:31:48 +0000
committerWendly Li <wendlyli@google.com>2022-06-14 18:29:09 +0000
commit967c1a070556b92b166401a10b07d2ac965e8dcd (patch)
tree28856aac2e3d5ae523dfe3702409bf116c58b9bc /goodix_brl_hw.c
parente29c9d98224bd37a84929a3d2bb98c808efdca0e (diff)
downloadgoodix_touch-967c1a070556b92b166401a10b07d2ac965e8dcd.tar.gz
goodix: Import v1.0.11 driver
Bug: 214118830 Bug: 214118809 Test: Check fw palm and grip works fine and can be switched Change-Id: I9cfb53fc671a073c802663ee89227ab09d3b783e Signed-off-by: Wendly Li <wendlyli@google.com>
Diffstat (limited to 'goodix_brl_hw.c')
-rw-r--r--goodix_brl_hw.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/goodix_brl_hw.c b/goodix_brl_hw.c
index ac908b1..f9c3e1e 100644
--- a/goodix_brl_hw.c
+++ b/goodix_brl_hw.c
@@ -1000,6 +1000,7 @@ static int brl_esd_check(struct goodix_ts_core *cd)
#define GOODIX_TOUCH_EVENT 0x80
#define GOODIX_REQUEST_EVENT 0x40
#define GOODIX_GESTURE_EVENT 0x20
+#define GOODIX_STATUS_EVENT 0x02
#define GOODIX_FP_EVENT 0x08
#define POINT_TYPE_STYLUS_HOVER 0x01
#define POINT_TYPE_STYLUS 0x03
@@ -1178,6 +1179,9 @@ static int goodix_touch_handler(struct goodix_ts_core *cd,
}
}
+ if (event_data->status_changed)
+ ts_event->event_type |= EVENT_STATUS;
+
/* process custom info */
if (event_data->custom_coor_info_flag)
ts_debug("TODO add custom info process function");
@@ -1215,6 +1219,11 @@ static int brl_event_handler(
}
ts_event->event_type = EVENT_INVALID;
+ /* read status event */
+ if (event_data->status_changed)
+ hw_ops->read(cd, 0x1021C, (u8 *)&ts_event->status_data,
+ sizeof(ts_event->status_data));
+
if (event_data->type & (GOODIX_TOUCH_EVENT >> 4))
return goodix_touch_handler(cd, ts_event,
@@ -1237,6 +1246,8 @@ static int brl_event_handler(
struct goodix_ts_gesture_event_data *gesture =
(struct goodix_ts_gesture_event_data *)event_data;
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,
GOODIX_GESTURE_DATA_LEN);