Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iio: adc: ad7192: Grab direct mode for calibration

While a calibration is running, better don't make the device do anything
else.

To enforce that, grab direct mode during calibration.

Fixes: 42776c14c692 ("staging: iio: adc: ad7192: Add system calibration support")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://patch.msgid.link/8aade802afca6a89641e24c1ae1d4b8d82cff58d.1740655250.git.u.kleine-koenig@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Uwe Kleine-König and committed by
Jonathan Cameron
08808b3e 7021d97f

+5
+5
drivers/iio/adc/ad7192.c
··· 257 257 if (ret) 258 258 return ret; 259 259 260 + if (!iio_device_claim_direct(indio_dev)) 261 + return -EBUSY; 262 + 260 263 temp = st->syscalib_mode[chan->channel]; 261 264 if (sys_calib) { 262 265 if (temp == AD7192_SYSCALIB_ZERO_SCALE) ··· 269 266 ret = ad_sd_calibrate(&st->sd, AD7192_MODE_CAL_SYS_FULL, 270 267 chan->address); 271 268 } 269 + 270 + iio_device_release_direct(indio_dev); 272 271 273 272 return ret ? ret : len; 274 273 }