diff --git a/drivers/sensors/sensor.c b/drivers/sensors/sensor.c index 389085dd11..6fa359e0d6 100644 --- a/drivers/sensors/sensor.c +++ b/drivers/sensors/sensor.c @@ -399,7 +399,7 @@ static void sensor_generate_timing(FAR struct sensor_upperhalf_s *upper, static bool sensor_is_updated(FAR struct sensor_upperhalf_s *upper, FAR struct sensor_user_s *user) { - long delta = upper->state.generation - user->state.generation; + long delta = (long long)upper->state.generation - user->state.generation; if (delta <= 0) { @@ -431,7 +431,7 @@ static void sensor_catch_up(FAR struct sensor_upperhalf_s *upper, long delta; circbuf_peek(&upper->timing, &generation, TIMING_BUF_ESIZE); - delta = generation - user->state.generation; + delta = (long long)generation - user->state.generation; if (delta > 0) { user->bufferpos = upper->timing.tail / TIMING_BUF_ESIZE;