hwmon: (tmp401) Use multi-byte regmap operations
authorGuenter Roeck <linux@roeck-us.net>
Tue, 9 Jul 2024 20:53:37 +0000 (13:53 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Wed, 31 Jul 2024 17:43:51 +0000 (10:43 -0700)
Use multi-byte regmap operations where possible to reduce code size
and the need for mutex protection.

No functional change.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/tmp401.c

index 853dbe708ff5dcfac37e081a4829a9919f68495c..02c5a3bb1071cb1445d12ee1e670190dffb03c69 100644 (file)
@@ -308,7 +308,9 @@ static int tmp401_temp_read(struct device *dev, u32 attr, int channel, long *val
 {
        struct tmp401_data *data = dev_get_drvdata(dev);
        struct regmap *regmap = data->regmap;
+       unsigned int regs[2] = { TMP401_TEMP_MSB[3][channel], TMP401_TEMP_CRIT_HYST };
        unsigned int regval;
+       u16 regvals[2];
        int reg, ret;
 
        switch (attr) {
@@ -325,20 +327,11 @@ static int tmp401_temp_read(struct device *dev, u32 attr, int channel, long *val
                *val = tmp401_register_to_temp(regval, data->extended_range);
                break;
        case hwmon_temp_crit_hyst:
-               mutex_lock(&data->update_lock);
-               reg = TMP401_TEMP_MSB[3][channel];
-               ret = regmap_read(regmap, reg, &regval);
-               if (ret < 0)
-                       goto unlock;
-               *val = tmp401_register_to_temp(regval, data->extended_range);
-               ret = regmap_read(regmap, TMP401_TEMP_CRIT_HYST, &regval);
-               if (ret < 0)
-                       goto unlock;
-               *val -= regval * 1000;
-unlock:
-               mutex_unlock(&data->update_lock);
+               ret = regmap_multi_reg_read(regmap, regs, regvals, 2);
                if (ret < 0)
                        return ret;
+               *val = tmp401_register_to_temp(regvals[0], data->extended_range) -
+                                                       (regvals[1] * 1000);
                break;
        case hwmon_temp_fault:
        case hwmon_temp_min_alarm: