iio: imu: mpu6050: fix INV_MPU6050_REG_UP_TIME delay
authorMatt Ranostay <matt.ranostay@intel.com>
Mon, 22 Feb 2016 21:39:08 +0000 (13:39 -0800)
committerJonathan Cameron <jic23@kernel.org>
Thu, 25 Feb 2016 19:48:47 +0000 (19:48 +0000)
replace msleep(INV_MPU6050_REG_UP_TIME) with usleep_range calls
due to fact the wait time is under 20 milliseconds.

Signed-off-by: Matt Ranostay <matt.ranostay@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h

index 5396dde919a78e68ba72f0a1770d431215777640..1578493f6105ef2eb7ba085a8e736b4f2f4f0e22 100644 (file)
@@ -151,7 +151,8 @@ int inv_mpu6050_set_power_itg(struct inv_mpu6050_state *st, bool power_on)
                return result;
 
        if (power_on)
-               msleep(INV_MPU6050_REG_UP_TIME);
+               usleep_range(INV_MPU6050_REG_UP_TIME_MIN,
+                            INV_MPU6050_REG_UP_TIME_MAX);
 
        return 0;
 }
index 71bdaa33cd05fcd860f87219e87fa0dbfe1400b8..8d2b74eaa8b6ff8ecb3aac017db945235f929e3b 100644 (file)
@@ -68,7 +68,8 @@ static int inv_mpu6050_select_bypass(struct i2c_adapter *adap, void *mux_priv,
                if (ret)
                        goto write_error;
 
-               msleep(INV_MPU6050_REG_UP_TIME);
+               usleep_range(INV_MPU6050_REG_UP_TIME_MIN,
+                            INV_MPU6050_REG_UP_TIME_MAX);
        }
        if (!ret) {
                st->powerup_count++;
index fcc2f3dfdfa803b7a96c072c725a66315669014e..243324dd78de09bee46e9100a9b706f5c5d38d3e 100644 (file)
@@ -172,10 +172,15 @@ struct inv_mpu6050_state {
 #define INV_MPU6050_BYTES_PER_3AXIS_SENSOR   6
 #define INV_MPU6050_FIFO_COUNT_BYTE          2
 #define INV_MPU6050_FIFO_THRESHOLD           500
+
+/* delay time in milliseconds */
 #define INV_MPU6050_POWER_UP_TIME            100
 #define INV_MPU6050_TEMP_UP_TIME             100
 #define INV_MPU6050_SENSOR_UP_TIME           30
-#define INV_MPU6050_REG_UP_TIME              5
+
+/* delay time in microseconds */
+#define INV_MPU6050_REG_UP_TIME_MIN          5000
+#define INV_MPU6050_REG_UP_TIME_MAX          10000
 
 #define INV_MPU6050_TEMP_OFFSET                     12421
 #define INV_MPU6050_TEMP_SCALE               2941