lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <96fd0466-13be-dea1-985c-19cccbd3d321@roeck-us.net>
Date:   Mon, 1 Feb 2021 11:43:15 -0800
From:   Guenter Roeck <linux@...ck-us.net>
To:     Matthew Barth <msbarth@...ux.ibm.com>, linux-hwmon@...r.kernel.org,
        linux-kernel@...r.kernel.org, jdelvare@...e.com
Cc:     joel@....id.au, andrew@...id.au
Subject: Re: [PATCH] pmbus:max31785: Support revision "B"

On 2/1/21 8:50 AM, Matthew Barth wrote:
> There was an issue in how the tach feedbacks of dual rotor fans were
> reported during any change in fan speeds with revision "A" of the
> MAX31785. When the fan speeds would transition to a new target speed,
> the rotor not wired to the TACH input when TACHSEL = 0 would report a
> speed of 0 until the new target was reached. This has been fixed,
> resulting in a revision "B" update where the MFR_REVISION of "B" is
> 0x3061.
> 

Is that published somewhere ?

> Signed-off-by: Matthew Barth <msbarth@...ux.ibm.com>
> ---
>  drivers/hwmon/pmbus/max31785.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/pmbus/max31785.c b/drivers/hwmon/pmbus/max31785.c
> index e5a9f4019cd5..e636a65061df 100644
> --- a/drivers/hwmon/pmbus/max31785.c
> +++ b/drivers/hwmon/pmbus/max31785.c
> @@ -17,6 +17,7 @@ enum max31785_regs {
>  
>  #define MAX31785			0x3030
>  #define MAX31785A			0x3040
> +#define MAX31785B			0x3061
>  
>  #define MFR_FAN_CONFIG_DUAL_TACH	BIT(12)
>  
> @@ -350,12 +351,13 @@ static int max31785_probe(struct i2c_client *client)
>  	if (ret < 0)
>  		return ret;
>  
> -	if (ret == MAX31785A) {
> +	if (ret == MAX31785A || ret == MAX31785B) {
>  		dual_tach = true;
>  	} else if (ret == MAX31785) {
>  		if (!strcmp("max31785a", client->name))

Probably also wants to check for max31785b,

>  			dev_warn(dev, "Expected max3175a, found max31785: cannot provide secondary tachometer readings\n");

and say something like "Expected max3175a/b, ..."

Thanks,
Guenter

>  	} else {
> +		dev_err(dev, "Unrecognized MAX31785 revision: %x\n", ret);
>  		return -ENODEV;
>  	}
>  
> @@ -371,6 +373,7 @@ static int max31785_probe(struct i2c_client *client)
>  static const struct i2c_device_id max31785_id[] = {
>  	{ "max31785", 0 },
>  	{ "max31785a", 0 },
> +	{ "max31785b", 0 },
>  	{ },
>  };
>  
> @@ -379,6 +382,7 @@ MODULE_DEVICE_TABLE(i2c, max31785_id);
>  static const struct of_device_id max31785_of_match[] = {
>  	{ .compatible = "maxim,max31785" },
>  	{ .compatible = "maxim,max31785a" },
> +	{ .compatible = "maxim,max31785b" },
>  	{ },
>  };
>  
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ