.. | .. |
---|
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; |
---|