]> www.infradead.org Git - users/jedix/linux-maple.git/commit
iio: adc: ad_sigma_delta: Disable channel after calibration
authorUwe Kleine-König <u.kleine-koenig@baylibre.com>
Mon, 3 Mar 2025 11:46:59 +0000 (12:46 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 11 Mar 2025 19:09:15 +0000 (19:09 +0000)
commitfb3a0811a7bc12d51cba4b75d6b123ab62e2fe4d
tree01a56060a1590ff1e36e5ff3c2c66fe95fd7aff8
parent9525c66de334caa85ed3ca20eabe96eff18a85d4
iio: adc: ad_sigma_delta: Disable channel after calibration

The function ad_sd_calibrate() enables the channel to calibrate at
function entry but doesn't disable it on exit. This is problematic
because if two (or more) channels are calibrated in a row, the second
calibration isn't executed as intended as the first (still enabled)
channel is recalibrated and after the first irq (i.e. when the
calibration of the first channel completed) the calibration is aborted.

This currently affects ad7173 only, as the other drivers using
ad_sd_calibrate() never have more than one channel enabled at a time.

To fix this, disable the calibrated channel after calibration.

Fixes: 031bdc8aee01 ("iio: adc: ad7173: add calibration support")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://patch.msgid.link/20250303114659.1672695-11-u.kleine-koenig@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ad_sigma_delta.c