[PATCH] hwmon: (pmbus) Expose PEC debugfs attribute
Andrew Jeffery
andrew at aj.id.au
Thu Sep 10 12:12:34 AEST 2020
On Thu, 10 Sep 2020, at 01:01, Guenter Roeck wrote:
> On 9/9/20 6:24 AM, Andrew Jeffery wrote:
> > Enable runtime debug control of whether the PEC byte is exchanged with
> > the PMBus device.
> >
> > Some manufacturers have asked for the PEC to be disabled as part of
> > debugging driver communication issues with devices.
> >
> > Signed-off-by: Andrew Jeffery <andrew at aj.id.au>
> > ---
> > drivers/hwmon/pmbus/pmbus_core.c | 39 ++++++++++++++++++++++++++++++++
> > 1 file changed, 39 insertions(+)
> >
> > diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
> > index 44535add3a4a..51c8502b35e9 100644
> > --- a/drivers/hwmon/pmbus/pmbus_core.c
> > +++ b/drivers/hwmon/pmbus/pmbus_core.c
> > @@ -2346,6 +2346,42 @@ static int pmbus_debugfs_get_status(void *data, u64 *val)
> > DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_status, pmbus_debugfs_get_status,
> > NULL, "0x%04llx\n");
> >
> > +static int pmbus_debugfs_get_pec(void *data, u64 *val)
> > +{
> > + struct i2c_client *client = data;
> > +
> > + *val = !!(client->flags & I2C_CLIENT_PEC);
> > +
> > + return 0;
> > +}
> > +
> > +static int pmbus_debugfs_set_pec(void *data, u64 val)
> > +{
> > + int rc;
> > + struct i2c_client *client = data;
> > +
> > + if (!val) {
> > + client->flags &= ~I2C_CLIENT_PEC;
> > + return 0;
> > + }
> > +
> > + if (val != 1)
> > + return -EINVAL;
> > +
> > + rc = i2c_smbus_read_byte_data(client, PMBUS_CAPABILITY);
> > + if (rc < 0)
> > + return rc;
> > +
> > + if (!(rc & PB_CAPABILITY_ERROR_CHECK))
> > + return -ENOTSUPP;
>
> WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP
>
> > +
> > + client->flags |= I2C_CLIENT_PEC;
> > +
> > + return 0;
> > +}
> > +DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_pec, pmbus_debugfs_get_pec,
> > + pmbus_debugfs_set_pec, "0x%1llu\n");
>
> ERROR: Prefixing 0x with decimal output is defective
>
> (since the displayed value is a boolean, it is also quite useless).
Indeed. I overlooked running checkpatch, sorry for the noise.
I've sent v2 which checkpatch claims to be clean.
Andrew
More information about the openbmc
mailing list