Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -632,7 +632,7 @@ static irqreturn_t exynos_ts_isr(int irq, void *dev_id)
		input_report_key(info->input, BTN_TOUCH, 1);
		input_sync(info->input);

		msleep(1);
		usleep_range(1000, 1100);
	};

	writel(0, ADC_V1_CLRINTPNDNUP(info->regs));
+7 −7
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ struct bmp280_data {
	struct bmp180_calib calib;
	struct regulator *vddd;
	struct regulator *vdda;
	unsigned int start_up_time; /* in milliseconds */
	unsigned int start_up_time; /* in microseconds */

	/* log of base 2 of oversampling rate */
	u8 oversampling_press;
@@ -935,14 +935,14 @@ int bmp280_common_probe(struct device *dev,
		data->chip_info = &bmp180_chip_info;
		data->oversampling_press = ilog2(8);
		data->oversampling_temp = ilog2(1);
		data->start_up_time = 10;
		data->start_up_time = 10000;
		break;
	case BMP280_CHIP_ID:
		indio_dev->num_channels = 2;
		data->chip_info = &bmp280_chip_info;
		data->oversampling_press = ilog2(16);
		data->oversampling_temp = ilog2(2);
		data->start_up_time = 2;
		data->start_up_time = 2000;
		break;
	case BME280_CHIP_ID:
		indio_dev->num_channels = 3;
@@ -950,7 +950,7 @@ int bmp280_common_probe(struct device *dev,
		data->oversampling_press = ilog2(16);
		data->oversampling_humid = ilog2(16);
		data->oversampling_temp = ilog2(2);
		data->start_up_time = 2;
		data->start_up_time = 2000;
		break;
	default:
		return -EINVAL;
@@ -979,7 +979,7 @@ int bmp280_common_probe(struct device *dev,
		goto out_disable_vddd;
	}
	/* 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 */
	gpiod = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
@@ -1038,7 +1038,7 @@ int bmp280_common_probe(struct device *dev,
	 * Set autosuspend to two orders of magnitude larger than the
	 * 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_put(dev);

@@ -1101,7 +1101,7 @@ static int bmp280_runtime_resume(struct device *dev)
	ret = regulator_enable(data->vdda);
	if (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);
}
#endif /* CONFIG_PM */
+1 −1
Original line number Diff line number Diff line
@@ -377,7 +377,7 @@ static int ade7753_initial_setup(struct iio_dev *indio_dev)
	}

	ade7753_reset(dev);
	msleep(ADE7753_STARTUP_DELAY);
	usleep_range(ADE7753_STARTUP_DELAY, ADE7753_STARTUP_DELAY + 100);

err_ret:
	return ret;
+1 −1
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@

#define ADE7753_MAX_TX    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_BURST	(u32)(1000 * 1000)
+1 −1
Original line number Diff line number Diff line
@@ -389,7 +389,7 @@ static int ade7754_initial_setup(struct iio_dev *indio_dev)
	}

	ade7754_reset(dev);
	msleep(ADE7754_STARTUP_DELAY);
	usleep_range(ADE7754_STARTUP_DELAY, ADE7754_STARTUP_DELAY + 100);

err_ret:
	return ret;
Loading