> +++ b/drivers/staging/iio/accel/adis16240.c
> @@ -229,11 +229,12 @@ static ssize_t adis16240_read_12bit_signed(struct device *dev,
>  {
>          ssize_t ret;
>          struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> +        struct adis *st = iio_priv(indio_dev);
>  
>          /* Take the iio_dev status lock */
> -        mutex_lock(&indio_dev->mlock);
> +        mutex_lock(&st->txrx_lock);

This unfortunately wont work. The adis_read_reg()/adis_write_reg() functions
take the txrx_lock. So this change causes a deadlock, trying to take a lock
that is already locked.

   Yes, it would cause deadlock. Can the lock be placed within the
   adis_read_reg() function and removing locks from other place?
 
But this lock can probably be removed. It should be safe to run the function
multiple times in parallel.

Same for the other changes in this patch.
  
   Then should I remove all the locks in this file?
   
   Thanks,
   Varsha