staging: iio: tsl2x7x: use usleep_range() instead of mdelay()
authorBrian Masney <masneyb@onstation.org>
Thu, 6 Jul 2017 22:56:24 +0000 (18:56 -0400)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 9 Jul 2017 17:30:07 +0000 (18:30 +0100)
This driver in some cases can busy wait for upwards of 15ms. Since the
kernel at this point is not running in atomic context, and is running in
process context, we can safely use usleep_range() instead. This patch
changes the two occurrences of mdelay() to usleep_range().

Signed-off-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/staging/iio/light/tsl2x7x.c

index d80f5dcb5c3701dd8c7b1b922ec1541d18f8e72b..c38bd640472621f27e0ae9770609883b17b01c99 100644 (file)
@@ -686,7 +686,8 @@ static int tsl2x7x_chip_on(struct iio_dev *indio_dev)
                }
        }
 
-       mdelay(3);      /* Power-on settling time */
+       /* Power-on settling time */
+       usleep_range(3000, 3500);
 
        /*
         * NOW enable the ADC
@@ -853,7 +854,7 @@ static void tsl2x7x_prox_cal(struct iio_dev *indio_dev)
 
        /*gather the samples*/
        for (i = 0; i < chip->tsl2x7x_settings.prox_max_samples_cal; i++) {
-               mdelay(15);
+               usleep_range(15000, 17500);
                tsl2x7x_get_prox(indio_dev);
                prox_history[i] = chip->prox_data;
                dev_info(&chip->client->dev, "2 i=%d prox data= %d\n",