mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-02 19:23:01 +09:00
iio: pressure: zpa2326: report interrupted case as failure
[ Upstream commite7215fe4d5] 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: commit03b262f2bb("iio:pressure: initial zpa2326 barometer support") Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at> Signed-off-by: Jonathan Cameron <jic23@kernel.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d6701d258d
commit
c5eb48c633
@@ -871,12 +871,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.
|
||||
@@ -886,13 +887,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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user