2022-04-22 19:18:56

by Adam Wujek

[permalink] [raw]
Subject: [PATCH] hwmon: (pmbus) allow to use a custom read_byte_data function for PMBUS_CAPABILITY

Some devices returns a wrong value in PMBUS_CAPABILITY register.
Allow the use of read_byte_data function defined in a driver for
a specific device.

Signed-off-by: Adam Wujek <[email protected]>
---
drivers/hwmon/pmbus/pmbus_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
index f8ca36759b0a..ef9989be8f89 100644
--- a/drivers/hwmon/pmbus/pmbus_core.c
+++ b/drivers/hwmon/pmbus/pmbus_core.c
@@ -2011,7 +2011,7 @@ static int pmbus_init_common(struct i2c_client *client, struct pmbus_data *data,
}

/* Enable PEC if the controller supports it */
- ret = i2c_smbus_read_byte_data(client, PMBUS_CAPABILITY);
+ ret = _pmbus_read_byte_data(client, -1, PMBUS_CAPABILITY);
if (ret >= 0 && (ret & PB_CAPABILITY_ERROR_CHECK))
client->flags |= I2C_CLIENT_PEC;
else
--
2.17.1



2022-04-22 19:52:48

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] hwmon: (pmbus) allow to use a custom read_byte_data function for PMBUS_CAPABILITY

On 4/19/22 14:52, Adam Wujek wrote:
> Some devices returns a wrong value in PMBUS_CAPABILITY register.
> Allow the use of read_byte_data function defined in a driver for
> a specific device.

Those devices should set PMBUS_NO_CAPABILITY.

Guenter

>
> Signed-off-by: Adam Wujek <[email protected]>
> ---
> drivers/hwmon/pmbus/pmbus_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
> index f8ca36759b0a..ef9989be8f89 100644
> --- a/drivers/hwmon/pmbus/pmbus_core.c
> +++ b/drivers/hwmon/pmbus/pmbus_core.c
> @@ -2011,7 +2011,7 @@ static int pmbus_init_common(struct i2c_client *client, struct pmbus_data *data,
> }
>
> /* Enable PEC if the controller supports it */
> - ret = i2c_smbus_read_byte_data(client, PMBUS_CAPABILITY);
> + ret = _pmbus_read_byte_data(client, -1, PMBUS_CAPABILITY);
> if (ret >= 0 && (ret & PB_CAPABILITY_ERROR_CHECK))
> client->flags |= I2C_CLIENT_PEC;
> else
> --
> 2.17.1
>
>