[PATCH linux dev-5.4 v1] hwmon: (pmbus) Add a PMBUS_NO_CAPABILITY platform data flag

Joel Stanley joel at jms.id.au
Mon Jan 17 17:28:50 AEDT 2022


Hello,

I note that you're targeting v5.4 for this patch. I don't know anyone
working on maintaining this kernel tree in the openbmc project.

I suggest you move your platform to the latest LTS, v5.15. This patch
is already present in that tree.

On Mon, 17 Jan 2022 at 06:27, Lulu Su <Lulu_Su at wistron.com> wrote:
>
> From: Eddie James <eajames at linux.ibm.com>
>
> Some PMBus chips don't respond with valid data when reading the
> CAPABILITY register. Add a flag that device drivers can set so
> that the PMBus core driver doesn't use CAPABILITY to determine it's
> behavior.
>
> Signed-off-by: Eddie James <eajames at linux.ibm.com>
> Link: https://lore.kernel.org/r/20201222152640.27749-2-eajames@linux.ibm.com
> Signed-off-by: Guenter Roeck <linux at roeck-us.net>
> (cherry picked from commit e5befc024cb4515d815662ed8746712cc5366bfc)
> ---
>  drivers/hwmon/pmbus/pmbus_core.c | 8 +++++---
>  include/linux/pmbus.h            | 9 +++++++++
>  2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
> index f7fc388..0f381558 100644
> --- a/drivers/hwmon/pmbus/pmbus_core.c
> +++ b/drivers/hwmon/pmbus/pmbus_core.c
> @@ -2156,9 +2156,11 @@ 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);
> -       if (ret >= 0 && (ret & PB_CAPABILITY_ERROR_CHECK))
> -               client->flags |= I2C_CLIENT_PEC;
> +       if (!(data->flags & PMBUS_NO_CAPABILITY)) {
> +               ret = i2c_smbus_read_byte_data(client, PMBUS_CAPABILITY);
> +               if (ret >= 0 && (ret & PB_CAPABILITY_ERROR_CHECK))
> +                       client->flags |= I2C_CLIENT_PEC;
> +       }
>
>         if (data->info->pages)
>                 pmbus_clear_faults(client);
> diff --git a/include/linux/pmbus.h b/include/linux/pmbus.h
> index 08468fc..74e1be0 100644
> --- a/include/linux/pmbus.h
> +++ b/include/linux/pmbus.h
> @@ -25,6 +25,15 @@
>   */
>  #define PMBUS_SKIP_STATUS_CHECK        (1 << 0)
>
> +/*
> + * PMBUS_NO_CAPABILITY
> + *
> + * Some PMBus chips don't respond with valid data when reading the CAPABILITY
> + * register. For such chips, this flag should be set so that the PMBus core
> + * driver doesn't use CAPABILITY to determine it's behavior.
> + */
> +#define PMBUS_NO_CAPABILITY                    BIT(2)
> +
>  struct pmbus_platform_data {
>         u32 flags;              /* Device specific flags */
>
> --
> 2.7.4
>
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
> This email contains confidential or legally privileged information and is for the sole use of its intended recipient.
> Any unauthorized review, use, copying or distribution of this email or the content of this email is strictly prohibited.
> If you are not the intended recipient, you may reply to the sender and should delete this e-mail immediately.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>


More information about the openbmc mailing list