iio: light: veml6070: use guard to handle mutex

Simplify the mutext handling by using a guard to automate the mutex
unlocking.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Link: https://patch.msgid.link/20240929-veml6070-cleanup-v1-2-a9350341a646@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Javier Carrasco
2024-09-29 22:38:47 +02:00
committed by Jonathan Cameron
parent 7501bff87c
commit fc38525135
+8 -8
View File
@@ -42,36 +42,36 @@ static int veml6070_read(struct veml6070_data *data)
int ret;
u8 msb, lsb;
mutex_lock(&data->lock);
guard(mutex)(&data->lock);
/* disable shutdown */
ret = i2c_smbus_write_byte(data->client1,
data->config & ~VEML6070_COMMAND_SD);
if (ret < 0)
goto out;
return ret;
msleep(125 + 10); /* measurement takes up to 125 ms for IT 1x */
ret = i2c_smbus_read_byte(data->client2); /* read MSB, address 0x39 */
if (ret < 0)
goto out;
return ret;
msb = ret;
ret = i2c_smbus_read_byte(data->client1); /* read LSB, address 0x38 */
if (ret < 0)
goto out;
return ret;
lsb = ret;
/* shutdown again */
ret = i2c_smbus_write_byte(data->client1, data->config);
if (ret < 0)
goto out;
return ret;
ret = (msb << 8) | lsb;
out:
mutex_unlock(&data->lock);
return ret;
return 0;
}
static const struct iio_chan_spec veml6070_channels[] = {