EC is using 32 bit timestamps (us), and before converting it to 64bit
they were not casted, so it would overflow every 4s.
Regular overflow every ~70 minutes was not taken into acoun either.

Signed-off-by: Gwendal Grignou <gwen...@chromium.org>
---
 drivers/platform/chrome/cros_ec_sensorhub_ring.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/platform/chrome/cros_ec_sensorhub_ring.c 
b/drivers/platform/chrome/cros_ec_sensorhub_ring.c
index 23960f3acc0b1..641d91088cee2 100644
--- a/drivers/platform/chrome/cros_ec_sensorhub_ring.c
+++ b/drivers/platform/chrome/cros_ec_sensorhub_ring.c
@@ -465,9 +465,7 @@ cros_ec_sensor_ring_process_event(struct cros_ec_sensorhub 
*sensorhub,
                         * Disable filtering since we might add more jitter
                         * if b is in a random point in time.
                         */
-                       new_timestamp = fifo_timestamp -
-                                       fifo_info->timestamp  * 1000 +
-                                       in->timestamp * 1000;
+                       new_timestamp = c - b * 1000 + a * 1000;
                        /*
                         * The timestamp can be stale if we had to use the fifo
                         * info timestamp.
-- 
2.27.0.212.ge8ba1cc988-goog

Reply via email to