summaryrefslogtreecommitdiff
path: root/driver/accelgyro_bmi160.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/accelgyro_bmi160.c')
-rw-r--r--driver/accelgyro_bmi160.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/driver/accelgyro_bmi160.c b/driver/accelgyro_bmi160.c
index 2629f59340..9ffa86e363 100644
--- a/driver/accelgyro_bmi160.c
+++ b/driver/accelgyro_bmi160.c
@@ -852,6 +852,19 @@ static int load_fifo(struct motion_sensor_t *s, uint32_t last_ts)
if (s->type != MOTIONSENSE_TYPE_ACCEL)
return EC_SUCCESS;
+ if (!(data->flags &
+ (BMI160_FIFO_ALL_MASK << BMI160_FIFO_FLAG_OFFSET))) {
+ /*
+ * The FIFO was disabled while we were processing it.
+ *
+ * Flush potential left over:
+ * When sensor is resumed, we won't read old data.
+ */
+ raw_write8(s->port, s->addr, BMI160_CMD_REG,
+ BMI160_CMD_FIFO_FLUSH);
+ return EC_SUCCESS;
+ }
+
raw_read_n(s->port, s->addr, BMI160_FIFO_LENGTH_0,
(uint8_t *)&length, sizeof(length));
length &= BMI160_FIFO_LENGTH_MASK;
@@ -872,19 +885,6 @@ static int load_fifo(struct motion_sensor_t *s, uint32_t last_ts)
CPRINTS("unexpected large FIFO: %d", length);
length = MIN(length, sizeof(bmi160_buffer));
- if (!(data->flags &
- (BMI160_FIFO_ALL_MASK << BMI160_FIFO_FLAG_OFFSET))) {
- /*
- * The FIFO was disabled while we were processing it.
- *
- * Flush potential left over:
- * When sensor is resumed, we won't read old data.
- */
- raw_write8(s->port, s->addr, BMI160_CMD_REG,
- BMI160_CMD_FIFO_FLUSH);
- return EC_SUCCESS;
- }
-
raw_read_n(s->port, s->addr, BMI160_FIFO_DATA, bmi160_buffer,
length);