mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
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:
parent
7501bff87c
commit
fc38525135
|
|
@ -42,36 +42,36 @@ static int veml6070_read(struct veml6070_data *data)
|
||||||
int ret;
|
int ret;
|
||||||
u8 msb, lsb;
|
u8 msb, lsb;
|
||||||
|
|
||||||
mutex_lock(&data->lock);
|
guard(mutex)(&data->lock);
|
||||||
|
|
||||||
/* disable shutdown */
|
/* disable shutdown */
|
||||||
ret = i2c_smbus_write_byte(data->client1,
|
ret = i2c_smbus_write_byte(data->client1,
|
||||||
data->config & ~VEML6070_COMMAND_SD);
|
data->config & ~VEML6070_COMMAND_SD);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out;
|
return ret;
|
||||||
|
|
||||||
msleep(125 + 10); /* measurement takes up to 125 ms for IT 1x */
|
msleep(125 + 10); /* measurement takes up to 125 ms for IT 1x */
|
||||||
|
|
||||||
ret = i2c_smbus_read_byte(data->client2); /* read MSB, address 0x39 */
|
ret = i2c_smbus_read_byte(data->client2); /* read MSB, address 0x39 */
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out;
|
return ret;
|
||||||
|
|
||||||
msb = ret;
|
msb = ret;
|
||||||
|
|
||||||
ret = i2c_smbus_read_byte(data->client1); /* read LSB, address 0x38 */
|
ret = i2c_smbus_read_byte(data->client1); /* read LSB, address 0x38 */
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out;
|
return ret;
|
||||||
|
|
||||||
lsb = ret;
|
lsb = ret;
|
||||||
|
|
||||||
/* shutdown again */
|
/* shutdown again */
|
||||||
ret = i2c_smbus_write_byte(data->client1, data->config);
|
ret = i2c_smbus_write_byte(data->client1, data->config);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out;
|
return ret;
|
||||||
|
|
||||||
ret = (msb << 8) | lsb;
|
ret = (msb << 8) | lsb;
|
||||||
|
|
||||||
out:
|
return 0;
|
||||||
mutex_unlock(&data->lock);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct iio_chan_spec veml6070_channels[] = {
|
static const struct iio_chan_spec veml6070_channels[] = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user