diff options
Diffstat (limited to 'drivers/iio/imu/adis16400.c')
| -rw-r--r-- | drivers/iio/imu/adis16400.c | 25 | 
1 files changed, 11 insertions, 14 deletions
| diff --git a/drivers/iio/imu/adis16400.c b/drivers/iio/imu/adis16400.c index 54af2ed664f6..768aa493a1a6 100644 --- a/drivers/iio/imu/adis16400.c +++ b/drivers/iio/imu/adis16400.c @@ -462,8 +462,7 @@ static int adis16400_initial_setup(struct iio_dev *indio_dev)  		if (ret)  			goto err_ret; -		ret = sscanf(indio_dev->name, "adis%u\n", &device_id); -		if (ret != 1) { +		if (sscanf(indio_dev->name, "adis%u\n", &device_id) != 1) {  			ret = -EINVAL;  			goto err_ret;  		} @@ -505,7 +504,6 @@ static int adis16400_write_raw(struct iio_dev *indio_dev,  	struct iio_chan_spec const *chan, int val, int val2, long info)  {  	struct adis16400_state *st = iio_priv(indio_dev); -	struct mutex *slock = &st->adis.state_lock;  	int ret, sps;  	switch (info) { @@ -518,18 +516,18 @@ static int adis16400_write_raw(struct iio_dev *indio_dev,  		 * Need to cache values so we can update if the frequency  		 * changes.  		 */ -		mutex_lock(slock); +		adis_dev_lock(&st->adis);  		st->filt_int = val;  		/* Work out update to current value */  		sps = st->variant->get_freq(st);  		if (sps < 0) { -			mutex_unlock(slock); +			adis_dev_unlock(&st->adis);  			return sps;  		}  		ret = __adis16400_set_filter(indio_dev, sps,  			val * 1000 + val2 / 1000); -		mutex_unlock(slock); +		adis_dev_unlock(&st->adis);  		return ret;  	case IIO_CHAN_INFO_SAMP_FREQ:  		sps = val * 1000 + val2 / 1000; @@ -537,9 +535,9 @@ static int adis16400_write_raw(struct iio_dev *indio_dev,  		if (sps <= 0)  			return -EINVAL; -		mutex_lock(slock); +		adis_dev_lock(&st->adis);  		ret = st->variant->set_freq(st, sps); -		mutex_unlock(slock); +		adis_dev_unlock(&st->adis);  		return ret;  	default:  		return -EINVAL; @@ -550,7 +548,6 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,  	struct iio_chan_spec const *chan, int *val, int *val2, long info)  {  	struct adis16400_state *st = iio_priv(indio_dev); -	struct mutex *slock = &st->adis.state_lock;  	int16_t val16;  	int ret; @@ -606,17 +603,17 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,  		*val = st->variant->temp_offset;  		return IIO_VAL_INT;  	case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: -		mutex_lock(slock); +		adis_dev_lock(&st->adis);  		/* Need both the number of taps and the sampling frequency */  		ret = __adis_read_reg_16(&st->adis,  						ADIS16400_SENS_AVG,  						&val16);  		if (ret) { -			mutex_unlock(slock); +			adis_dev_unlock(&st->adis);  			return ret;  		}  		ret = st->variant->get_freq(st); -		mutex_unlock(slock); +		adis_dev_unlock(&st->adis);  		if (ret)  			return ret;  		ret /= adis16400_3db_divisors[val16 & 0x07]; @@ -624,9 +621,9 @@ static int adis16400_read_raw(struct iio_dev *indio_dev,  		*val2 = (ret % 1000) * 1000;  		return IIO_VAL_INT_PLUS_MICRO;  	case IIO_CHAN_INFO_SAMP_FREQ: -		mutex_lock(slock); +		adis_dev_lock(&st->adis);  		ret = st->variant->get_freq(st); -		mutex_unlock(slock); +		adis_dev_unlock(&st->adis);  		if (ret)  			return ret;  		*val = ret / 1000; | 
