hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/iio/adc/ad_sigma_delta.c
....@@ -280,10 +280,10 @@
280280 unsigned int data_reg;
281281 int ret = 0;
282282
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;
285286
286
- mutex_lock(&indio_dev->mlock);
287287 ad_sigma_delta_set_channel(sigma_delta, chan->address);
288288
289289 spi_bus_lock(sigma_delta->spi->master);
....@@ -322,7 +322,7 @@
322322 ad_sigma_delta_set_mode(sigma_delta, AD_SD_MODE_IDLE);
323323 sigma_delta->bus_locked = false;
324324 spi_bus_unlock(sigma_delta->spi->master);
325
- mutex_unlock(&indio_dev->mlock);
325
+ iio_device_release_direct_mode(indio_dev);
326326
327327 if (ret)
328328 return ret;