hwmon: (it87) Fix thermal sensor type values

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jean Delvare wrote:
> The it87 driver doesn't follow the standard sensor type values as
> documented in Documentation/hwmon/sysfs-interface. It uses value 2 for
> thermistors instead of value 4. This causes "sensors" to tell the user
> that the chip is setup for a transistor while it is actually setup for
> a thermistor.
> 
> Using value 4 for thermistors solves the problem. For compatibility
> reasons, we still accept value 2 but emit a warning message so that
> users update their configuration files.
> 

Looks good,

Acked-by: Hans de Goede <hdegoede at redhat.com>

> Signed-off-by: Jean Delvare <khali at linux-fr.org>
> ---
> For users of lm-sensors <= 2.10.7, this change will cause the
> thermistors to be reported as "invalid". I've just fixed that in SVN.
> For this reason, I do not want to push the it87 driver fix into the
> kernel immediately. Let's wait for lm-sensors 2.10.8 to be released
> first. In practice, this means that the it87 driver will be fixed in
> kernel 2.6.28.
> 
>  Documentation/hwmon/it87 |    4 ++--
>  drivers/hwmon/it87.c     |   11 ++++++++---
>  2 files changed, 10 insertions(+), 5 deletions(-)
> 
> --- linux-2.6.27-rc7.orig/Documentation/hwmon/it87	2008-08-13 09:50:46.000000000 +0200
> +++ linux-2.6.27-rc7/Documentation/hwmon/it87	2008-09-26 17:43:34.000000000 +0200
> @@ -136,10 +136,10 @@ once-only alarms.
>  The IT87xx only updates its values each 1.5 seconds; reading it more often
>  will do no harm, but will return 'old' values.
>  
> -To change sensor N to a thermistor, 'echo 2 > tempN_type' where N is 1, 2,
> +To change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
>  or 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
>  Give 0 for unused sensor. Any other value is invalid. To configure this at
> -startup, consult lm_sensors's /etc/sensors.conf. (2 = thermistor;
> +startup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
>  3 = thermal diode)
>  
>  
> --- linux-2.6.27-rc7.orig/drivers/hwmon/it87.c	2008-09-26 09:50:16.000000000 +0200
> +++ linux-2.6.27-rc7/drivers/hwmon/it87.c	2008-09-27 10:01:44.000000000 +0200
> @@ -477,7 +477,7 @@ static ssize_t show_sensor(struct device
>  	if (reg & (1 << nr))
>  		return sprintf(buf, "3\n");  /* thermal diode */
>  	if (reg & (8 << nr))
> -		return sprintf(buf, "2\n");  /* thermistor */
> +		return sprintf(buf, "4\n");  /* thermistor */
>  	return sprintf(buf, "0\n");      /* disabled */
>  }
>  static ssize_t set_sensor(struct device *dev, struct device_attribute *attr,
> @@ -493,10 +493,15 @@ static ssize_t set_sensor(struct device
>  
>  	data->sensor &= ~(1 << nr);
>  	data->sensor &= ~(8 << nr);
> -	/* 3 = thermal diode; 2 = thermistor; 0 = disabled */
> +	if (val == 2) {	/* backwards compatibility */
> +		dev_warn(dev, "Sensor type 2 is deprecated, please use 4 "
> +			 "instead\n");
> +		val = 4;
> +	}
> +	/* 3 = thermal diode; 4 = thermistor; 0 = disabled */
>  	if (val == 3)
>  	    data->sensor |= 1 << nr;
> -	else if (val == 2)
> +	else if (val == 4)
>  	    data->sensor |= 8 << nr;
>  	else if (val != 0) {
>  		mutex_unlock(&data->update_lock);
> 
> 





[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux