mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-28 16:52:18 +00:00
hwmon: (chipcap2) Switch to guard() for mutext handling
Switch to guard() for mutex handling to simplify the code, getting rid of the 'ret = x, break; return ret;' construct and return the result of the operation instead. Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
f6477c85db
commit
232ba88182
@ -13,6 +13,7 @@
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/bits.h>
|
||||
#include <linux/cleanup.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/hwmon.h>
|
||||
@ -556,55 +557,40 @@ static int cc2_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
|
||||
int channel, long *val)
|
||||
{
|
||||
struct cc2_data *data = dev_get_drvdata(dev);
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&data->dev_access_lock);
|
||||
guard(mutex)(&data->dev_access_lock);
|
||||
|
||||
switch (type) {
|
||||
case hwmon_temp:
|
||||
ret = cc2_measurement(data, type, val);
|
||||
break;
|
||||
return cc2_measurement(data, type, val);
|
||||
case hwmon_humidity:
|
||||
switch (attr) {
|
||||
case hwmon_humidity_input:
|
||||
ret = cc2_measurement(data, type, val);
|
||||
break;
|
||||
return cc2_measurement(data, type, val);
|
||||
case hwmon_humidity_min:
|
||||
ret = cc2_get_reg_val(data, CC2_R_ALARM_L_ON, val);
|
||||
break;
|
||||
return cc2_get_reg_val(data, CC2_R_ALARM_L_ON, val);
|
||||
case hwmon_humidity_min_hyst:
|
||||
ret = cc2_get_reg_val(data, CC2_R_ALARM_L_OFF, val);
|
||||
break;
|
||||
return cc2_get_reg_val(data, CC2_R_ALARM_L_OFF, val);
|
||||
case hwmon_humidity_max:
|
||||
ret = cc2_get_reg_val(data, CC2_R_ALARM_H_ON, val);
|
||||
break;
|
||||
return cc2_get_reg_val(data, CC2_R_ALARM_H_ON, val);
|
||||
case hwmon_humidity_max_hyst:
|
||||
ret = cc2_get_reg_val(data, CC2_R_ALARM_H_OFF, val);
|
||||
break;
|
||||
return cc2_get_reg_val(data, CC2_R_ALARM_H_OFF, val);
|
||||
case hwmon_humidity_min_alarm:
|
||||
ret = cc2_humidity_min_alarm_status(data, val);
|
||||
break;
|
||||
return cc2_humidity_min_alarm_status(data, val);
|
||||
case hwmon_humidity_max_alarm:
|
||||
ret = cc2_humidity_max_alarm_status(data, val);
|
||||
break;
|
||||
return cc2_humidity_max_alarm_status(data, val);
|
||||
default:
|
||||
ret = -EOPNOTSUPP;
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ret = -EOPNOTSUPP;
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
mutex_unlock(&data->dev_access_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int cc2_write(struct device *dev, enum hwmon_sensor_types type, u32 attr,
|
||||
int channel, long val)
|
||||
{
|
||||
struct cc2_data *data = dev_get_drvdata(dev);
|
||||
int ret;
|
||||
u16 arg;
|
||||
u8 cmd;
|
||||
|
||||
@ -614,41 +600,28 @@ static int cc2_write(struct device *dev, enum hwmon_sensor_types type, u32 attr,
|
||||
if (val < 0 || val > CC2_RH_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&data->dev_access_lock);
|
||||
guard(mutex)(&data->dev_access_lock);
|
||||
|
||||
switch (attr) {
|
||||
case hwmon_humidity_min:
|
||||
cmd = CC2_W_ALARM_L_ON;
|
||||
arg = cc2_rh_to_reg(val);
|
||||
ret = cc2_write_reg(data, cmd, arg);
|
||||
break;
|
||||
|
||||
return cc2_write_reg(data, cmd, arg);
|
||||
case hwmon_humidity_min_hyst:
|
||||
cmd = CC2_W_ALARM_L_OFF;
|
||||
arg = cc2_rh_to_reg(val);
|
||||
ret = cc2_write_reg(data, cmd, arg);
|
||||
break;
|
||||
|
||||
return cc2_write_reg(data, cmd, arg);
|
||||
case hwmon_humidity_max:
|
||||
cmd = CC2_W_ALARM_H_ON;
|
||||
arg = cc2_rh_to_reg(val);
|
||||
ret = cc2_write_reg(data, cmd, arg);
|
||||
break;
|
||||
|
||||
return cc2_write_reg(data, cmd, arg);
|
||||
case hwmon_humidity_max_hyst:
|
||||
cmd = CC2_W_ALARM_H_OFF;
|
||||
arg = cc2_rh_to_reg(val);
|
||||
ret = cc2_write_reg(data, cmd, arg);
|
||||
break;
|
||||
|
||||
return cc2_write_reg(data, cmd, arg);
|
||||
default:
|
||||
ret = -EOPNOTSUPP;
|
||||
break;
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
mutex_unlock(&data->dev_access_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int cc2_request_ready_irq(struct cc2_data *data, struct device *dev)
|
||||
|
Loading…
Reference in New Issue
Block a user