]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iio: adc: ti-ads7924: Use guard(mutex) in ADC read helper
authorGiorgi Tchankvetadze <giorgitchankvetadze1997@gmail.com>
Mon, 20 Apr 2026 11:34:45 +0000 (15:34 +0400)
committerJonathan Cameron <jic23@kernel.org>
Mon, 27 Apr 2026 08:58:23 +0000 (09:58 +0100)
Replace mutex_lock()/mutex_unlock() pair with guard(mutex)()
and move the lock into ads7924_get_adc_result(). Keeping the guard
in the helper makes the locking scope match the operation being protected.

Suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Giorgi Tchankvetadze <giorgitchankvetadze1997@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/adc/ti-ads7924.c

index bbcc4fc22b6e313336034279890d38c1ee040103..5f294595a415f482f68b035bc4051594ada7853a 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include <linux/bitfield.h>
+#include <linux/cleanup.h>
 #include <linux/delay.h>
 #include <linux/gpio/consumer.h>
 #include <linux/init.h>
@@ -198,6 +199,8 @@ static int ads7924_get_adc_result(struct ads7924_data *data,
        if (chan->channel < 0 || chan->channel >= ADS7924_CHANNELS)
                return -EINVAL;
 
+       guard(mutex)(&data->lock);
+
        if (data->conv_invalid) {
                int conv_time;
 
@@ -227,9 +230,7 @@ static int ads7924_read_raw(struct iio_dev *indio_dev,
 
        switch (mask) {
        case IIO_CHAN_INFO_RAW:
-               mutex_lock(&data->lock);
                ret = ads7924_get_adc_result(data, chan, val);
-               mutex_unlock(&data->lock);
                if (ret < 0)
                        return ret;