summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavidycchen <davidycchen@google.com>2023-02-01 13:50:19 +0800
committerYen-Chao Chen <davidycchen@google.com>2023-02-06 09:57:49 +0000
commitb6becc71968bc9dc18eecf22d163bb3326d19d32 (patch)
tree679f1dc7236f51e8f8f2510d65dc8a449b3c43b7
parente73e642f0bfe6029afc230c45db90b0008886065 (diff)
downloadfts_touch-b6becc71968bc9dc18eecf22d163bb3326d19d32.tar.gz
ftm5: notify driver status to GTI
Let the GTI to get touch noise and water mode information. Bug: 265870152 Test: build pass Change-Id: I8a33010a2dbb94caaa185e4775469de7025e3dcd Signed-off-by: davidycchen <davidycchen@google.com>
-rw-r--r--ftm5/fts.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/ftm5/fts.c b/ftm5/fts.c
index de1631c..7efea36 100644
--- a/ftm5/fts.c
+++ b/ftm5/fts.c
@@ -2495,6 +2495,11 @@ static int gti_default_handler(void *private_data, enum gti_cmd_type cmd_type,
/* Heatmap is always enabled. */
ret = 0;
break;
+ case GTI_CMD_GET_CONTEXT_DRIVER:
+ case GTI_CMD_GET_CONTEXT_STYLUS:
+ /* There is no context from this driver. */
+ ret = 0;
+ break;
default:
ret = -ESRCH;
break;
@@ -3257,6 +3262,9 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
char *event)
{
u8 grid_touch_status;
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ struct gti_fw_status_data data = {0};
+#endif
switch (event[1]) {
case EVT_TYPE_STATUS_ECHO:
@@ -3403,6 +3411,9 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
" raw frame = %02X %02X %02X %02X %02X %02X\n",
__func__, event[2], event[3], event[4],
event[5], event[6], event[7]);
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ goog_notify_fw_status_changed(info->gti, GTI_FW_STATUS_WATER_ENTER, NULL);
+#endif
break;
case 0x01:
@@ -3410,6 +3421,9 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
" raw frame = %02X %02X %02X %02X %02X %02X\n",
__func__, event[2], event[3], event[4],
event[5], event[6], event[7]);
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ goog_notify_fw_status_changed(info->gti, GTI_FW_STATUS_WATER_ENTER, NULL);
+#endif
break;
case 0x02:
@@ -3417,6 +3431,9 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
" raw frame = %02X %02X %02X %02X %02X %02X\n",
__func__, event[2], event[3], event[4],
event[5], event[6], event[7]);
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ goog_notify_fw_status_changed(info->gti, GTI_FW_STATUS_WATER_ENTER, NULL);
+#endif
break;
case 0x03:
@@ -3424,6 +3441,9 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
" raw frame = %02X %02X %02X %02X %02X %02X\n",
__func__, event[2], event[3], event[4],
event[5], event[6], event[7]);
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ goog_notify_fw_status_changed(info->gti, GTI_FW_STATUS_WATER_EXIT, NULL);
+#endif
break;
case 0x04:
@@ -3431,6 +3451,9 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
" raw frame = %02X %02X %02X %02X %02X %02X\n",
__func__, event[2], event[3], event[4],
event[5], event[6], event[7]);
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ goog_notify_fw_status_changed(info->gti, GTI_FW_STATUS_WATER_EXIT, NULL);
+#endif
break;
case 0x05:
@@ -3438,6 +3461,9 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
" raw frame = %02X %02X %02X %02X %02X %02X\n",
__func__, event[2], event[3], event[4],
event[5], event[6], event[7]);
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ goog_notify_fw_status_changed(info->gti, GTI_FW_STATUS_WATER_EXIT, NULL);
+#endif
break;
default:
@@ -3473,6 +3499,10 @@ static bool fts_status_event_handler(struct fts_ts_info *info, unsigned
__func__, event[2], event[3], event[4],
event[5], event[6], event[7]);
}
+#if IS_ENABLED(CONFIG_GOOG_TOUCH_INTERFACE)
+ data.noise_level = event[2] & 0x0F;
+ goog_notify_fw_status_changed(info->gti, GTI_FW_STATUS_NOISE_MODE, &data);
+#endif
break;
case EVT_TYPE_STATUS_STIMPAD: