| .. | .. |
|---|
| 280 | 280 | unsigned int data_reg; |
|---|
| 281 | 281 | int ret = 0; |
|---|
| 282 | 282 | |
|---|
| 283 | | - if (iio_buffer_enabled(indio_dev)) |
|---|
| 284 | | - return -EBUSY; |
|---|
| 283 | + ret = iio_device_claim_direct_mode(indio_dev); |
|---|
| 284 | + if (ret) |
|---|
| 285 | + return ret; |
|---|
| 285 | 286 | |
|---|
| 286 | | - mutex_lock(&indio_dev->mlock); |
|---|
| 287 | 287 | ad_sigma_delta_set_channel(sigma_delta, chan->address); |
|---|
| 288 | 288 | |
|---|
| 289 | 289 | spi_bus_lock(sigma_delta->spi->master); |
|---|
| .. | .. |
|---|
| 322 | 322 | ad_sigma_delta_set_mode(sigma_delta, AD_SD_MODE_IDLE); |
|---|
| 323 | 323 | sigma_delta->bus_locked = false; |
|---|
| 324 | 324 | spi_bus_unlock(sigma_delta->spi->master); |
|---|
| 325 | | - mutex_unlock(&indio_dev->mlock); |
|---|
| 325 | + iio_device_release_direct_mode(indio_dev); |
|---|
| 326 | 326 | |
|---|
| 327 | 327 | if (ret) |
|---|
| 328 | 328 | return ret; |
|---|