]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: adc: aspeed: Replace mdelay() with fsleep() for ADC stabilization delay
authorBilly Tsai <billy_tsai@aspeedtech.com>
Fri, 20 Mar 2026 05:46:37 +0000 (13:46 +0800)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 21 Mar 2026 15:49:16 +0000 (15:49 +0000)
The ADC stabilization delays in compensation mode and battery sensing
mode do not require atomic context. Using mdelay() here results in
unnecessary busy waiting.

Replace mdelay(1) with fsleep(1000) to allow the scheduler to run other
tasks while waiting for the ADC to stabilize.

Also fix a minor typo in the comment ("adc" -> "ADC").

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/aspeed_adc.c

index 3ff24474f394a2638d4a070f6baa8ef6e9ea4868..a1a6296d30035f16a59b918e555eff2c5171678d 100644 (file)
@@ -259,7 +259,7 @@ static int aspeed_adc_compensation(struct iio_dev *indio_dev)
         * After enable compensating sensing mode need to wait some time for ADC stable
         * Experiment result is 1ms.
         */
-       mdelay(1);
+       fsleep(1000);
 
        for (index = 0; index < 16; index++) {
                /*
@@ -314,10 +314,10 @@ static int aspeed_adc_read_raw(struct iio_dev *indio_dev,
                                       ASPEED_ADC_BAT_SENSING_ENABLE,
                               data->base + ASPEED_REG_ENGINE_CONTROL);
                        /*
-                        * After enable battery sensing mode need to wait some time for adc stable
+                        * After enable battery sensing mode need to wait some time for ADC stable
                         * Experiment result is 1ms.
                         */
-                       mdelay(1);
+                       fsleep(1000);
                        *val = readw(data->base + chan->address);
                        *val = (*val * data->battery_mode_gain.mult) /
                               data->battery_mode_gain.div;