Commit 071cf249 authored by Aniroop Mathur's avatar Aniroop Mathur Committed by Jonathan Cameron

IIO: Change msleep to usleep_range for small msecs

msleep(1~20) may not do what the caller intends, and will often sleep longer.
(~20 ms actual sleep for any value given in the 1~20ms range)
This is not the desired behaviour for many cases like device resume time,
device suspend time, device enable time, data reading time, etc.
Thus, change msleep to usleep_range for precise wakeups.
Signed-off-by: default avatarAniroop Mathur <a.mathur@samsung.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 160d9587
...@@ -632,7 +632,7 @@ static irqreturn_t exynos_ts_isr(int irq, void *dev_id) ...@@ -632,7 +632,7 @@ static irqreturn_t exynos_ts_isr(int irq, void *dev_id)
input_report_key(info->input, BTN_TOUCH, 1); input_report_key(info->input, BTN_TOUCH, 1);
input_sync(info->input); input_sync(info->input);
msleep(1); usleep_range(1000, 1100);
}; };
writel(0, ADC_V1_CLRINTPNDNUP(info->regs)); writel(0, ADC_V1_CLRINTPNDNUP(info->regs));
......
...@@ -65,7 +65,7 @@ struct bmp280_data { ...@@ -65,7 +65,7 @@ struct bmp280_data {
struct bmp180_calib calib; struct bmp180_calib calib;
struct regulator *vddd; struct regulator *vddd;
struct regulator *vdda; struct regulator *vdda;
unsigned int start_up_time; /* in milliseconds */ unsigned int start_up_time; /* in microseconds */
/* log of base 2 of oversampling rate */ /* log of base 2 of oversampling rate */
u8 oversampling_press; u8 oversampling_press;
...@@ -935,14 +935,14 @@ int bmp280_common_probe(struct device *dev, ...@@ -935,14 +935,14 @@ int bmp280_common_probe(struct device *dev,
data->chip_info = &bmp180_chip_info; data->chip_info = &bmp180_chip_info;
data->oversampling_press = ilog2(8); data->oversampling_press = ilog2(8);
data->oversampling_temp = ilog2(1); data->oversampling_temp = ilog2(1);
data->start_up_time = 10; data->start_up_time = 10000;
break; break;
case BMP280_CHIP_ID: case BMP280_CHIP_ID:
indio_dev->num_channels = 2; indio_dev->num_channels = 2;
data->chip_info = &bmp280_chip_info; data->chip_info = &bmp280_chip_info;
data->oversampling_press = ilog2(16); data->oversampling_press = ilog2(16);
data->oversampling_temp = ilog2(2); data->oversampling_temp = ilog2(2);
data->start_up_time = 2; data->start_up_time = 2000;
break; break;
case BME280_CHIP_ID: case BME280_CHIP_ID:
indio_dev->num_channels = 3; indio_dev->num_channels = 3;
...@@ -950,7 +950,7 @@ int bmp280_common_probe(struct device *dev, ...@@ -950,7 +950,7 @@ int bmp280_common_probe(struct device *dev,
data->oversampling_press = ilog2(16); data->oversampling_press = ilog2(16);
data->oversampling_humid = ilog2(16); data->oversampling_humid = ilog2(16);
data->oversampling_temp = ilog2(2); data->oversampling_temp = ilog2(2);
data->start_up_time = 2; data->start_up_time = 2000;
break; break;
default: default:
return -EINVAL; return -EINVAL;
...@@ -979,7 +979,7 @@ int bmp280_common_probe(struct device *dev, ...@@ -979,7 +979,7 @@ int bmp280_common_probe(struct device *dev,
goto out_disable_vddd; goto out_disable_vddd;
} }
/* Wait to make sure we started up properly */ /* Wait to make sure we started up properly */
mdelay(data->start_up_time); usleep_range(data->start_up_time, data->start_up_time + 100);
/* Bring chip out of reset if there is an assigned GPIO line */ /* Bring chip out of reset if there is an assigned GPIO line */
gpiod = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); gpiod = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
...@@ -1038,7 +1038,7 @@ int bmp280_common_probe(struct device *dev, ...@@ -1038,7 +1038,7 @@ int bmp280_common_probe(struct device *dev,
* Set autosuspend to two orders of magnitude larger than the * Set autosuspend to two orders of magnitude larger than the
* start-up time. * start-up time.
*/ */
pm_runtime_set_autosuspend_delay(dev, data->start_up_time *100); pm_runtime_set_autosuspend_delay(dev, data->start_up_time / 10);
pm_runtime_use_autosuspend(dev); pm_runtime_use_autosuspend(dev);
pm_runtime_put(dev); pm_runtime_put(dev);
...@@ -1101,7 +1101,7 @@ static int bmp280_runtime_resume(struct device *dev) ...@@ -1101,7 +1101,7 @@ static int bmp280_runtime_resume(struct device *dev)
ret = regulator_enable(data->vdda); ret = regulator_enable(data->vdda);
if (ret) if (ret)
return ret; return ret;
msleep(data->start_up_time); usleep_range(data->start_up_time, data->start_up_time + 100);
return data->chip_info->chip_config(data); return data->chip_info->chip_config(data);
} }
#endif /* CONFIG_PM */ #endif /* CONFIG_PM */
......
...@@ -377,7 +377,7 @@ static int ade7753_initial_setup(struct iio_dev *indio_dev) ...@@ -377,7 +377,7 @@ static int ade7753_initial_setup(struct iio_dev *indio_dev)
} }
ade7753_reset(dev); ade7753_reset(dev);
msleep(ADE7753_STARTUP_DELAY); usleep_range(ADE7753_STARTUP_DELAY, ADE7753_STARTUP_DELAY + 100);
err_ret: err_ret:
return ret; return ret;
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
#define ADE7753_MAX_TX 4 #define ADE7753_MAX_TX 4
#define ADE7753_MAX_RX 4 #define ADE7753_MAX_RX 4
#define ADE7753_STARTUP_DELAY 1 #define ADE7753_STARTUP_DELAY 1000
#define ADE7753_SPI_SLOW (u32)(300 * 1000) #define ADE7753_SPI_SLOW (u32)(300 * 1000)
#define ADE7753_SPI_BURST (u32)(1000 * 1000) #define ADE7753_SPI_BURST (u32)(1000 * 1000)
......
...@@ -389,7 +389,7 @@ static int ade7754_initial_setup(struct iio_dev *indio_dev) ...@@ -389,7 +389,7 @@ static int ade7754_initial_setup(struct iio_dev *indio_dev)
} }
ade7754_reset(dev); ade7754_reset(dev);
msleep(ADE7754_STARTUP_DELAY); usleep_range(ADE7754_STARTUP_DELAY, ADE7754_STARTUP_DELAY + 100);
err_ret: err_ret:
return ret; return ret;
......
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
#define ADE7754_MAX_TX 4 #define ADE7754_MAX_TX 4
#define ADE7754_MAX_RX 4 #define ADE7754_MAX_RX 4
#define ADE7754_STARTUP_DELAY 1 #define ADE7754_STARTUP_DELAY 1000
#define ADE7754_SPI_SLOW (u32)(300 * 1000) #define ADE7754_SPI_SLOW (u32)(300 * 1000)
#define ADE7754_SPI_BURST (u32)(1000 * 1000) #define ADE7754_SPI_BURST (u32)(1000 * 1000)
......
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
#define ADE7758_MAX_TX 8 #define ADE7758_MAX_TX 8
#define ADE7758_MAX_RX 4 #define ADE7758_MAX_RX 4
#define ADE7758_STARTUP_DELAY 1 #define ADE7758_STARTUP_DELAY 1000
#define AD7758_NUM_WAVSEL 5 #define AD7758_NUM_WAVSEL 5
#define AD7758_NUM_PHSEL 3 #define AD7758_NUM_PHSEL 3
......
...@@ -459,7 +459,7 @@ static int ade7758_initial_setup(struct iio_dev *indio_dev) ...@@ -459,7 +459,7 @@ static int ade7758_initial_setup(struct iio_dev *indio_dev)
} }
ade7758_reset(dev); ade7758_reset(dev);
msleep(ADE7758_STARTUP_DELAY); usleep_range(ADE7758_STARTUP_DELAY, ADE7758_STARTUP_DELAY + 100);
err_ret: err_ret:
return ret; return ret;
......
...@@ -338,7 +338,7 @@ static int ade7759_initial_setup(struct iio_dev *indio_dev) ...@@ -338,7 +338,7 @@ static int ade7759_initial_setup(struct iio_dev *indio_dev)
} }
ade7759_reset(dev); ade7759_reset(dev);
msleep(ADE7759_STARTUP_DELAY); usleep_range(ADE7759_STARTUP_DELAY, ADE7759_STARTUP_DELAY + 100);
err_ret: err_ret:
return ret; return ret;
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#define ADE7759_MAX_TX 6 #define ADE7759_MAX_TX 6
#define ADE7759_MAX_RX 6 #define ADE7759_MAX_RX 6
#define ADE7759_STARTUP_DELAY 1 #define ADE7759_STARTUP_DELAY 1000
#define ADE7759_SPI_SLOW (u32)(300 * 1000) #define ADE7759_SPI_SLOW (u32)(300 * 1000)
#define ADE7759_SPI_BURST (u32)(1000 * 1000) #define ADE7759_SPI_BURST (u32)(1000 * 1000)
......
...@@ -444,7 +444,7 @@ static int ade7854_initial_setup(struct iio_dev *indio_dev) ...@@ -444,7 +444,7 @@ static int ade7854_initial_setup(struct iio_dev *indio_dev)
} }
ade7854_reset(dev); ade7854_reset(dev);
msleep(ADE7854_STARTUP_DELAY); usleep_range(ADE7854_STARTUP_DELAY, ADE7854_STARTUP_DELAY + 100);
err_ret: err_ret:
return ret; return ret;
......
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
#define ADE7854_MAX_TX 7 #define ADE7854_MAX_TX 7
#define ADE7854_MAX_RX 7 #define ADE7854_MAX_RX 7
#define ADE7854_STARTUP_DELAY 1 #define ADE7854_STARTUP_DELAY 1000
#define ADE7854_SPI_SLOW (u32)(300 * 1000) #define ADE7854_SPI_SLOW (u32)(300 * 1000)
#define ADE7854_SPI_BURST (u32)(1000 * 1000) #define ADE7854_SPI_BURST (u32)(1000 * 1000)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment