[PATCH 07/11] staging: iio: ad2s1200: Ensure udelay(1) in all necessary code paths
David Veenstra
davidjulianveenstra at gmail.com
Sun Mar 18 13:36:15 UTC 2018
After a successful spi transaction, a udelay(1) is needed.
This doesn't happen for the default case of the switch statement
in ad2s1200_read_raw. This patch makes sure that it does.
Signed-off-by: David Veenstra <davidjulianveenstra at gmail.com>
---
drivers/staging/iio/resolver/ad2s1200.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/iio/resolver/ad2s1200.c b/drivers/staging/iio/resolver/ad2s1200.c
index e0e7c88368ed..6ce9ca13094a 100644
--- a/drivers/staging/iio/resolver/ad2s1200.c
+++ b/drivers/staging/iio/resolver/ad2s1200.c
@@ -78,20 +78,22 @@ static int ad2s1200_read_raw(struct iio_dev *indio_dev,
switch (chan->type) {
case IIO_ANGL:
*val = vel >> 4;
+ ret = IIO_VAL_INT;
break;
case IIO_ANGL_VEL:
*val = sign_extend32((s16)vel >> 4, 11);
+ ret = IIO_VAL_INT;
break;
default:
- mutex_unlock(&st->lock);
- return -EINVAL;
+ ret = -EINVAL;
+ break;
}
/* delay (2 * AD2S1200_TSCLK + 20) ns for sample pulse */
udelay(1);
mutex_unlock(&st->lock);
- return IIO_VAL_INT;
+ return ret;
}
static const struct iio_chan_spec ad2s1200_channels[] = {
--
2.16.2
More information about the devel
mailing list