iio: imu: inv_mpu6050: make loop a do-while
authorMartin Kelly <mkelly@xevo.com>
Tue, 1 May 2018 17:56:42 +0000 (10:56 -0700)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 12 May 2018 09:01:41 +0000 (10:01 +0100)
Prior to this loop, we check if fifo_count < bytes_per_datum and bail if
so. This means that when we hit the loop, we know that fifo_count >=
bytes_per_datum, so the check is unneeded and we can turn the loop into
a do-while for a slight performance improvement.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c

index 97d965181635cd26027c565e5cf0d31b2dda8d15..1795418438e41fa918285cb7c0bcdb6e0a0c0c20 100644 (file)
@@ -175,7 +175,7 @@ irqreturn_t inv_mpu6050_read_fifo(int irq, void *p)
        if (kfifo_len(&st->timestamps) >
            fifo_count / bytes_per_datum + INV_MPU6050_TIME_STAMP_TOR)
                goto flush_fifo;
-       while (fifo_count >= bytes_per_datum) {
+       do {
                result = regmap_bulk_read(st->map, st->reg->fifo_r_w,
                                          data, bytes_per_datum);
                if (result)
@@ -194,7 +194,7 @@ irqreturn_t inv_mpu6050_read_fifo(int irq, void *p)
                                                           timestamp);
 
                fifo_count -= bytes_per_datum;
-       }
+       } while (fifo_count >= bytes_per_datum);
 
 end_session:
        mutex_unlock(&st->lock);