mirror of https://gitee.com/openkylin/linux.git
iio: imu: adis: group single conversion under a single state lock
The single conversion function does a series of reads + writes. This change extends the use of the state_lock for the entire set of operations. Previously, indio_dev's mlock was used. This change also removes the use of this lock. Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
cb5a07f1f1
commit
c5485a5d6a
|
@ -404,15 +404,15 @@ int adis_single_conversion(struct iio_dev *indio_dev,
|
|||
unsigned int uval;
|
||||
int ret;
|
||||
|
||||
mutex_lock(&indio_dev->mlock);
|
||||
mutex_lock(&adis->state_lock);
|
||||
|
||||
ret = adis_read_reg(adis, chan->address, &uval,
|
||||
ret = __adis_read_reg(adis, chan->address, &uval,
|
||||
chan->scan_type.storagebits / 8);
|
||||
if (ret)
|
||||
goto err_unlock;
|
||||
|
||||
if (uval & error_mask) {
|
||||
ret = adis_check_status(adis);
|
||||
ret = __adis_check_status(adis);
|
||||
if (ret)
|
||||
goto err_unlock;
|
||||
}
|
||||
|
@ -424,7 +424,7 @@ int adis_single_conversion(struct iio_dev *indio_dev,
|
|||
|
||||
ret = IIO_VAL_INT;
|
||||
err_unlock:
|
||||
mutex_unlock(&indio_dev->mlock);
|
||||
mutex_unlock(&adis->state_lock);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(adis_single_conversion);
|
||||
|
|
Loading…
Reference in New Issue