Previously, when spi_read returned an error code inside ad2s90_read_raw,
the code was ignored and IIO_VAL_INT was returned. This patch makes the
function return the error code returned by spi_read when it fails.

Signed-off-by: Matheus Tavares <matheus.bernard...@usp.br>
---
 drivers/staging/iio/resolver/ad2s90.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/iio/resolver/ad2s90.c 
b/drivers/staging/iio/resolver/ad2s90.c
index 59586947a936..11fac9f90148 100644
--- a/drivers/staging/iio/resolver/ad2s90.c
+++ b/drivers/staging/iio/resolver/ad2s90.c
@@ -35,12 +35,15 @@ static int ad2s90_read_raw(struct iio_dev *indio_dev,
        struct ad2s90_state *st = iio_priv(indio_dev);
 
        mutex_lock(&st->lock);
+
        ret = spi_read(st->sdev, st->rx, 2);
-       if (ret)
-               goto error_ret;
+       if (ret < 0) {
+               mutex_unlock(&st->lock);
+               return ret;
+       }
+
        *val = (((u16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4);
 
-error_ret:
        mutex_unlock(&st->lock);
 
        return IIO_VAL_INT;
-- 
2.18.0

Reply via email to