]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/staging/iio/gyro/adis16060_core.c
Merge remote-tracking branch 'staging/staging-next'
[karo-tx-linux.git] / drivers / staging / iio / gyro / adis16060_core.c
index 4c5869dd82231aaaef6dc4d3d4d5a87b4461eb2f..ab816a215eb80f10acb672c905372c977c244d9d 100644 (file)
@@ -67,7 +67,7 @@ static int adis16060_spi_read(struct iio_dev *indio_dev, u16 *val)
         * starts to place data MSB first on the DOUT line at
         * the 6th falling edge of SCLK
         */
-       if (ret == 0)
+       if (!ret)
                *val = ((st->buf[0] & 0x3) << 12) |
                        (st->buf[1] << 4) |
                        ((st->buf[2] >> 4) & 0xF);
@@ -89,11 +89,13 @@ static int adis16060_read_raw(struct iio_dev *indio_dev,
                /* Take the iio_dev status lock */
                mutex_lock(&indio_dev->mlock);
                ret = adis16060_spi_write(indio_dev, chan->address);
-               if (ret < 0) {
-                       mutex_unlock(&indio_dev->mlock);
-                       return ret;
-               }
+               if (ret < 0)
+                       goto out_unlock;
+
                ret = adis16060_spi_read(indio_dev, &tval);
+               if (ret < 0)
+                       goto out_unlock;
+
                mutex_unlock(&indio_dev->mlock);
                *val = tval;
                return IIO_VAL_INT;
@@ -108,6 +110,10 @@ static int adis16060_read_raw(struct iio_dev *indio_dev,
        }
 
        return -EINVAL;
+
+out_unlock:
+       mutex_unlock(&indio_dev->mlock);
+       return ret;
 }
 
 static const struct iio_info adis16060_info = {
@@ -202,7 +208,6 @@ static int adis16060_w_remove(struct spi_device *spi)
 static struct spi_driver adis16060_r_driver = {
        .driver = {
                .name = "adis16060_r",
-               .owner = THIS_MODULE,
        },
        .probe = adis16060_r_probe,
 };
@@ -210,7 +215,6 @@ static struct spi_driver adis16060_r_driver = {
 static struct spi_driver adis16060_w_driver = {
        .driver = {
                .name = "adis16060_w",
-               .owner = THIS_MODULE,
        },
        .probe = adis16060_w_probe,
        .remove = adis16060_w_remove,