Skip handling invalid event types

Bug: 293907307
Test: Touch works normally.

Change-Id: I73439b102ac6d6a347767b314f56fff87ba69daf
Signed-off-by: Yen-Chao Chen <davidycchen@google.com>
diff --git a/touch/ftm5/fts.c b/touch/ftm5/fts.c
index 38801ab..daf8863 100644
--- a/touch/ftm5/fts.c
+++ b/touch/ftm5/fts.c
@@ -3877,6 +3877,11 @@
 		for (count = 0; count < events_remaining + 1; count++) {
 			evt_data = &data[count * FIFO_EVENT_SIZE];
 
+			if (!VALID_EVENT_TYPE(evt_data[0])) {
+				dev_err(info->dev, "Got invalid event type: %*ph\n", 8, evt_data);
+				goto exit;
+			}
+
 			switch (GET_EVENT_TYPE(evt_data[0])) {
 			case EVT_ID_CONTROLLER_READY:
 			case EVT_ID_ERROR:
diff --git a/touch/ftm5/fts_lib/ftsSoftware.h b/touch/ftm5/fts_lib/ftsSoftware.h
index 14e45e8..8090bc0 100644
--- a/touch/ftm5/fts_lib/ftsSoftware.h
+++ b/touch/ftm5/fts_lib/ftsSoftware.h
@@ -375,6 +375,7 @@
 /** @}*/
 /* bit2 and bit3 are for major data so skip it. */
 #define GET_EVENT_TYPE(event_data)	(event_data & 0xF3)
+#define VALID_EVENT_TYPE(event_data)    ((event_data & 0x03) == 0x03)
 /* EVENT ID */
 /** @defgroup events_group	 FW Event IDs and Types
   * Event IDs and Types pushed by the FW into the FIFO