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

Commit e7215fe4 authored by Nicholas Mc Guire's avatar Nicholas Mc Guire Committed by Jonathan Cameron
Browse files

iio: pressure: zpa2326: report interrupted case as failure



If the timeout-case prints a warning message then probably the interrupted
case should also. Further, wait_for_completion_interruptible_timeout()
returns long not int.

Fixes: commit 03b262f2 ("iio:pressure: initial zpa2326 barometer support")
Signed-off-by: default avatarNicholas Mc Guire <der.herr@hofr.at>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 6fb34812
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -867,12 +867,13 @@ static int zpa2326_wait_oneshot_completion(const struct iio_dev *indio_dev,
{
	int          ret;
	unsigned int val;
	long     timeout;

	zpa2326_dbg(indio_dev, "waiting for one shot completion interrupt");

	ret = wait_for_completion_interruptible_timeout(
	timeout = wait_for_completion_interruptible_timeout(
		&private->data_ready, ZPA2326_CONVERSION_JIFFIES);
	if (ret > 0)
	if (timeout > 0)
		/*
		 * Interrupt handler completed before timeout: return operation
		 * status.
@@ -882,13 +883,16 @@ static int zpa2326_wait_oneshot_completion(const struct iio_dev *indio_dev,
	/* Clear all interrupts just to be sure. */
	regmap_read(private->regmap, ZPA2326_INT_SOURCE_REG, &val);

	if (!ret)
	if (!timeout) {
		/* Timed out. */
		zpa2326_warn(indio_dev, "no one shot interrupt occurred (%ld)",
			     timeout);
		ret = -ETIME;

	if (ret != -ERESTARTSYS)
		zpa2326_warn(indio_dev, "no one shot interrupt occurred (%d)",
			     ret);
	} else if (timeout < 0) {
		zpa2326_warn(indio_dev,
			     "wait for one shot interrupt cancelled");
		ret = -ERESTARTSYS;
	}

	return ret;
}