Re: [PATCH v2 1/2] hwmon: (pmbus/bpa-rs600) Don't use rated limits as warn limits
From: Guenter Roeck
Date: Thu Aug 12 2021 - 00:40:41 EST
On Thu, Aug 12, 2021 at 01:39:59PM +1200, Chris Packham wrote:
> In the initial implementation a number of PMBUS_x_WARN_LIMITs were
> mapped to MFR fields. This was incorrect as these MFR limits reflect the
> rated limit as opposed to a limit which will generate warning. Instead
> return -ENXIO like we were already doing for other WARN_LIMITs.
>
> Subsequently these rated limits have been exposed generically as new
> fields in the sysfs ABI so the values are still available.
>
> Fixes: 15b2703e5e02 ("hwmon: (pmbus) Add driver for BluTek BPA-RS600")
> Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>
Applied.
Thanks,
Guenter
> ---
>
> Notes:
> Changes in v2:
> - Reworked to remove the mapping of warning limits to rated limits.
>
> drivers/hwmon/pmbus/bpa-rs600.c | 25 -------------------------
> 1 file changed, 25 deletions(-)
>
> diff --git a/drivers/hwmon/pmbus/bpa-rs600.c b/drivers/hwmon/pmbus/bpa-rs600.c
> index d205b41540ce..84dee86399cb 100644
> --- a/drivers/hwmon/pmbus/bpa-rs600.c
> +++ b/drivers/hwmon/pmbus/bpa-rs600.c
> @@ -12,15 +12,6 @@
> #include <linux/pmbus.h>
> #include "pmbus.h"
>
> -#define BPARS600_MFR_VIN_MIN 0xa0
> -#define BPARS600_MFR_VIN_MAX 0xa1
> -#define BPARS600_MFR_IIN_MAX 0xa2
> -#define BPARS600_MFR_PIN_MAX 0xa3
> -#define BPARS600_MFR_VOUT_MIN 0xa4
> -#define BPARS600_MFR_VOUT_MAX 0xa5
> -#define BPARS600_MFR_IOUT_MAX 0xa6
> -#define BPARS600_MFR_POUT_MAX 0xa7
> -
> enum chips { bpa_rs600, bpd_rs600 };
>
> static int bpa_rs600_read_byte_data(struct i2c_client *client, int page, int reg)
> @@ -83,29 +74,13 @@ static int bpa_rs600_read_word_data(struct i2c_client *client, int page, int pha
>
> switch (reg) {
> case PMBUS_VIN_UV_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VIN_MIN);
> - break;
> case PMBUS_VIN_OV_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VIN_MAX);
> - break;
> case PMBUS_VOUT_UV_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VOUT_MIN);
> - break;
> case PMBUS_VOUT_OV_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VOUT_MAX);
> - break;
> case PMBUS_IIN_OC_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_IIN_MAX);
> - break;
> case PMBUS_IOUT_OC_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_IOUT_MAX);
> - break;
> case PMBUS_PIN_OP_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_PIN_MAX);
> - break;
> case PMBUS_POUT_OP_WARN_LIMIT:
> - ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_POUT_MAX);
> - break;
> case PMBUS_VIN_UV_FAULT_LIMIT:
> case PMBUS_VIN_OV_FAULT_LIMIT:
> case PMBUS_VOUT_UV_FAULT_LIMIT: