iio: gyro: adis16260: make use of the new lock helpers
authorNuno Sa <nuno.sa@analog.com>
Tue, 18 Jun 2024 13:32:08 +0000 (15:32 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 25 Jun 2024 20:04:50 +0000 (21:04 +0100)
Use the new auto cleanup based locks so error paths are simpler.

While at it, reduce a bit the scope of the lock as we did not needed it
protecting all the data in the switch() branch.

Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Link: https://patch.msgid.link/20240618-dev-iio-adis-cleanup-v1-5-bd93ce7845c7@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/gyro/adis16260.c

index 112d635..495b64a 100644 (file)
@@ -270,7 +270,6 @@ static int adis16260_write_raw(struct iio_dev *indio_dev,
 {
        struct adis16260 *adis16260 = iio_priv(indio_dev);
        struct adis *adis = &adis16260->adis;
-       int ret;
        u8 addr;
        u8 t;
 
@@ -288,7 +287,6 @@ static int adis16260_write_raw(struct iio_dev *indio_dev,
                addr = adis16260_addresses[chan->scan_index][1];
                return adis_write_reg_16(adis, addr, val);
        case IIO_CHAN_INFO_SAMP_FREQ:
-               adis_dev_lock(adis);
                if (spi_get_device_id(adis->spi)->driver_data)
                        t = 256 / val;
                else
@@ -298,15 +296,14 @@ static int adis16260_write_raw(struct iio_dev *indio_dev,
                        t = ADIS16260_SMPL_PRD_DIV_MASK;
                else if (t > 0)
                        t--;
-
-               if (t >= 0x0A)
-                       adis->spi->max_speed_hz = ADIS16260_SPI_SLOW;
-               else
-                       adis->spi->max_speed_hz = ADIS16260_SPI_FAST;
-               ret = __adis_write_reg_8(adis, ADIS16260_SMPL_PRD, t);
-
-               adis_dev_unlock(adis);
-               return ret;
+               adis_dev_auto_scoped_lock(adis) {
+                       if (t >= 0x0A)
+                               adis->spi->max_speed_hz = ADIS16260_SPI_SLOW;
+                       else
+                               adis->spi->max_speed_hz = ADIS16260_SPI_FAST;
+                       return __adis_write_reg_8(adis, ADIS16260_SMPL_PRD, t);
+               }
+               unreachable();
        }
        return -EINVAL;
 }