diff options
author | 2016-04-11 10:41:07 +0300 | |
---|---|---|
committer | 2016-04-13 08:17:18 +0300 | |
commit | e09b41010ba33a20a87472ee821fa407a5b8da36 (patch) | |
tree | d10dc367189862e7ca5c592f033dc3726e1df4e3 /kernel/drivers/staging/iio/gyro | |
parent | f93b97fd65072de626c074dbe099a1fff05ce060 (diff) |
These changes are the raw update to linux-4.4.6-rt14. Kernel sources
are taken from kernel.org, and rt patch from the rt wiki download page.
During the rebasing, the following patch collided:
Force tick interrupt and get rid of softirq magic(I70131fb85).
Collisions have been removed because its logic was found on the
source already.
Change-Id: I7f57a4081d9deaa0d9ccfc41a6c8daccdee3b769
Signed-off-by: José Pekkarinen <jose.pekkarinen@nokia.com>
Diffstat (limited to 'kernel/drivers/staging/iio/gyro')
-rw-r--r-- | kernel/drivers/staging/iio/gyro/adis16060_core.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/kernel/drivers/staging/iio/gyro/adis16060_core.c b/kernel/drivers/staging/iio/gyro/adis16060_core.c index 4c5869dd8..ab816a215 100644 --- a/kernel/drivers/staging/iio/gyro/adis16060_core.c +++ b/kernel/drivers/staging/iio/gyro/adis16060_core.c @@ -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, |