On Fri, Jul 07, 2023 at 10:29:50PM +1000, Frank Crawford wrote: > The temperature sensor type will need to be used in multiple places, so > split it out into its own function. > > Signed-off-by: Frank Crawford <frank@xxxxxxxxxxxxxxxxxx> Applied. Nit inline. > --- > > v2: > * Split single patch into multi-patch set following review. > > --- > drivers/hwmon/it87.c | 43 ++++++++++++++++++++++++++++++------------- > 1 file changed, 30 insertions(+), 13 deletions(-) > > diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c > index 5deff5e5f693..7a1224ddc8b1 100644 > --- a/drivers/hwmon/it87.c > +++ b/drivers/hwmon/it87.c > @@ -1159,28 +1159,45 @@ static SENSOR_DEVICE_ATTR_2(temp4_input, S_IRUGO, show_temp, NULL, 3, 0); > static SENSOR_DEVICE_ATTR_2(temp5_input, S_IRUGO, show_temp, NULL, 4, 0); > static SENSOR_DEVICE_ATTR_2(temp6_input, S_IRUGO, show_temp, NULL, 5, 0); > > +static int get_temp_type(struct it87_data *data, int index) > +{ > + /* > + * 2 is deprecated; > + * 3 = thermal diode; > + * 4 = thermistor; > + * 5 = AMDTSI; > + * 6 = Intel PECI; > + * 0 = disabled > + */ > + u8 reg, extra; > + int type = 0; > + > + reg = data->sensor; /* In case value is updated while used */ > + extra = data->extra; > + > + if ((has_temp_peci(data, index) && (reg >> 6 == index + 1)) || > + (has_temp_old_peci(data, index) && (extra & 0x80))) > + type = 6; /* Intel PECI */ > + else if (reg & BIT(index)) > + type = 3; /* thermal diode */ > + else if (reg & BIT(index + 3)) > + type = 4; /* thermistor */ > + > + return type; > +} > + > static ssize_t show_temp_type(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct sensor_device_attribute *sensor_attr = to_sensor_dev_attr(attr); > - int nr = sensor_attr->index; > struct it87_data *data = it87_update_device(dev); > - u8 reg, extra; > + int type; > > if (IS_ERR(data)) > return PTR_ERR(data); > > - reg = data->sensor; /* In case value is updated while used */ > - extra = data->extra; > - > - if ((has_temp_peci(data, nr) && (reg >> 6 == nr + 1)) || > - (has_temp_old_peci(data, nr) && (extra & 0x80))) > - return sprintf(buf, "6\n"); /* Intel PECI */ > - if (reg & (1 << nr)) > - return sprintf(buf, "3\n"); /* thermal diode */ > - if (reg & (8 << nr)) > - return sprintf(buf, "4\n"); /* thermistor */ > - return sprintf(buf, "0\n"); /* disabled */ > + type = get_temp_type(data, sensor_attr->index); > + return sprintf(buf, "%d\n", type); The type variable is really unnecessary. I dropped that while applying. Thanks, Guenter