]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
hwmon: (adt7x10) Use multi-byte regmap operations
authorGuenter Roeck <linux@roeck-us.net>
Tue, 9 Jul 2024 21:06:17 +0000 (14:06 -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 changes.

Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/adt7x10.c

index 6701920de17f44c1a8c3e3b451007c04929eead2..2d329391ed3fd6a6563fe3a82e3451c5e8fae2d4 100644 (file)
@@ -170,21 +170,15 @@ static int adt7x10_temp_write(struct adt7x10_data *data, int index, long temp)
 
 static int adt7x10_hyst_read(struct adt7x10_data *data, int index, long *val)
 {
-       int hyst, temp, ret;
+       unsigned int regs[2] = {ADT7X10_T_HYST, ADT7X10_REG_TEMP[index]};
+       int hyst, ret;
+       u16 regdata[2];
 
-       mutex_lock(&data->update_lock);
-       ret = regmap_read(data->regmap, ADT7X10_T_HYST, &hyst);
-       if (ret) {
-               mutex_unlock(&data->update_lock);
-               return ret;
-       }
-
-       ret = regmap_read(data->regmap, ADT7X10_REG_TEMP[index], &temp);
-       mutex_unlock(&data->update_lock);
+       ret = regmap_multi_reg_read(data->regmap, regs, regdata, 2);
        if (ret)
                return ret;
 
-       hyst = (hyst & ADT7X10_T_HYST_MASK) * 1000;
+       hyst = (regdata[0] & ADT7X10_T_HYST_MASK) * 1000;
 
        /*
         * hysteresis is stored as a 4 bit offset in the device, convert it
@@ -194,7 +188,7 @@ static int adt7x10_hyst_read(struct adt7x10_data *data, int index, long *val)
        if (index == adt7x10_t_alarm_low)
                hyst = -hyst;
 
-       *val = ADT7X10_REG_TO_TEMP(data, temp) - hyst;
+       *val = ADT7X10_REG_TO_TEMP(data, regdata[1]) - hyst;
        return 0;
 }