]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hwmon: (chipcap2) Switch to guard() for mutext handling
authorJavier Carrasco <javier.carrasco.cruz@gmail.com>
Thu, 21 Nov 2024 21:44:56 +0000 (22:44 +0100)
committerGuenter Roeck <linux@roeck-us.net>
Sat, 14 Dec 2024 16:00:44 +0000 (08:00 -0800)
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>
drivers/hwmon/chipcap2.c

index edf454474f11c9300a1b6ea7b27f72760173617c..9d071f7ca9d2efc420a0d861676b5cacae68782a 100644 (file)
@@ -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)