[lm-sensors] [PATCH] hwmon: (pmbus) Improve auto-detection of temperature status register

Jean Delvare khali at linux-fr.org
Tue Jul 5 18:45:57 CEST 2011


Hi Guenter,

On Tue, 5 Jul 2011 07:54:24 -0700, Guenter Roeck wrote:
> It is possible that a PMBus device supports the READ_TEMPERATURE2 and/or
> READ_TEMPERATURE3 registers but does not support READ_TEMPERATURE1.
> Improve temperature status register detection to address this condition.
> 
> Reported-by: Jean Delvare <khali at linux-fr.org>
> Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
> ---
>  drivers/hwmon/pmbus.c |   17 ++++++++++++-----
>  1 files changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hwmon/pmbus.c b/drivers/hwmon/pmbus.c
> index 931d940..4a1f217 100644
> --- a/drivers/hwmon/pmbus.c
> +++ b/drivers/hwmon/pmbus.c
> @@ -59,16 +59,17 @@ static void pmbus_find_sensor_groups(struct i2c_client *client,
>  		if (pmbus_check_byte_register(client, 0, PMBUS_STATUS_FAN_34))
>  			info->func[0] |= PMBUS_HAVE_STATUS_FAN34;
>  	}
> -	if (pmbus_check_word_register(client, 0, PMBUS_READ_TEMPERATURE_1)) {
> +	if (pmbus_check_word_register(client, 0, PMBUS_READ_TEMPERATURE_1))
>  		info->func[0] |= PMBUS_HAVE_TEMP;
> -		if (pmbus_check_byte_register(client, 0,
> -					      PMBUS_STATUS_TEMPERATURE))
> -			info->func[0] |= PMBUS_HAVE_STATUS_TEMP;
> -	}
>  	if (pmbus_check_word_register(client, 0, PMBUS_READ_TEMPERATURE_2))
>  		info->func[0] |= PMBUS_HAVE_TEMP2;
>  	if (pmbus_check_word_register(client, 0, PMBUS_READ_TEMPERATURE_3))
>  		info->func[0] |= PMBUS_HAVE_TEMP3;
> +	if (info->func[0] & (PMBUS_HAVE_TEMP | PMBUS_HAVE_TEMP2
> +			     | PMBUS_HAVE_TEMP3)
> +	    && pmbus_check_byte_register(client, 0,
> +					 PMBUS_STATUS_TEMPERATURE))
> +			info->func[0] |= PMBUS_HAVE_STATUS_TEMP;
>  
>  	/* Sensors detected on all pages */
>  	for (page = 0; page < info->pages; page++) {

So far so good, and

Acked-by: Jean Delvare <khali at linux-fr.org>

> @@ -177,6 +178,12 @@ static const struct i2c_device_id pmbus_id[] = {
>  	{"bmr454", 1},
>  	{"ltc2978", 8},
>  	{"pmbus", 0},
> +	{"zl2004", 1},
> +	{"zl2006", 1},
> +	{"zl2008", 1},
> +	{"zl2106", 1},
> +	{"zl6100", 1},
> +	{"zl6105", 1},
>  	{}
>  };
>  

OTOH I very much doubt that this change was supposed to be included in
that patch.

-- 
Jean Delvare




More information about the lm-sensors mailing list