SENSOR: Ignore the first 350ms gyroscope sensor events

Fixes: Gyro data is wrong for the first 300ms

Bug: 4027031i
Change-Id: I7f29ffbae7fe665184b018f17efd562069ca60a3
Signed-off-by: tim.sk.lee <tim.sk.lee@samsung.com>
diff --git a/libsensors/GyroSensor.cpp b/libsensors/GyroSensor.cpp
index 7f6b864..ecebb61 100644
--- a/libsensors/GyroSensor.cpp
+++ b/libsensors/GyroSensor.cpp
@@ -26,14 +26,15 @@
 #include "GyroSensor.h"
 
 #define FETCH_FULL_EVENT_BEFORE_RETURN 1
-
+#define IGNORE_EVENT_TIME 350000000
 /*****************************************************************************/
 
 GyroSensor::GyroSensor()
     : SensorBase(NULL, "gyro"),
       mEnabled(0),
       mInputReader(4),
-      mHasPendingEvent(false)
+      mHasPendingEvent(false),
+      mEnabledTime(0)
 {
     mPendingEvent.version = sizeof(sensors_event_t);
     mPendingEvent.sensor = ID_GY;
@@ -86,6 +87,7 @@
             buf[1] = 0;
             if (flags) {
                 buf[0] = '1';
+                mEnabledTime = getTimestamp() + IGNORE_EVENT_TIME;
             } else {
                 buf[0] = '0';
             }
@@ -155,9 +157,11 @@
         } else if (type == EV_SYN) {
             mPendingEvent.timestamp = timevalToNano(event->time);
             if (mEnabled) {
-                *data++ = mPendingEvent;
+                if (mPendingEvent.timestamp >= mEnabledTime) {
+                    *data++ = mPendingEvent;
+                    numEventReceived++;
+                }
                 count--;
-                numEventReceived++;
             }
         } else {
             LOGE("GyroSensor: unknown event (type=%d, code=%d)",
diff --git a/libsensors/GyroSensor.h b/libsensors/GyroSensor.h
index e5a9241..e8997de 100644
--- a/libsensors/GyroSensor.h
+++ b/libsensors/GyroSensor.h
@@ -37,6 +37,7 @@
     bool mHasPendingEvent;
     char input_sysfs_path[PATH_MAX];
     int input_sysfs_path_len;
+    int64_t mEnabledTime;
 
     int setInitialState();