mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 20:24:12 +08:00
iio: gyro: adis16260: make use of the new lock helpers
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>
This commit is contained in:
parent
ccd52641f9
commit
8d61d01cde
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user