All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Grant Peltier <grantpeltier93@gmail.com>
Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org,
	adam.vaughn.xh@renesas.com, grant.peltier.jg@renesas.com
Subject: Re: [PATCH 1/2] hwmon: (pmbus/isl68137) add debugfs config and black box endpoints
Date: Tue, 21 Apr 2020 19:04:04 -0700	[thread overview]
Message-ID: <20200422020404.GA126375@roeck-us.net> (raw)
In-Reply-To: <20200421214917.GA28170@raspberrypi>

On Tue, Apr 21, 2020 at 04:49:17PM -0500, Grant Peltier wrote:
> On Tue, Apr 21, 2020 at 11:58:51AM -0700, Guenter Roeck wrote:
> > Normally this is emulated for such controllers. I don't recall seeing
> > such a need before. The code below duplicates similar code in
> > i2c_smbus_xfer_emulated(), which is much more sophisticated.
> > Are you sure this is needed ? Can you point me to an affected
> > controller ?
> > 
> > > +static s32 raa_smbus_read40(const struct i2c_client *client, u8 command,
> > > +			    unsigned char *data)
> > > +{
> > > +	int status;
> > > +	unsigned char msgbuf[1];
> > > +	struct i2c_msg msg[2] = {
> > > +		{
> > > +			.addr = client->addr,
> > > +			.flags = client->flags,
> > > +			.len = 1,
> > > +			.buf = msgbuf,
> > > +		},
> > > +		{
> > > +			.addr = client->addr,
> > > +			.flags = client->flags | I2C_M_RD,
> > > +			.len = 5,
> > > +			.buf = data,
> > > +		},
> > > +	};
> > > +
> > > +	msgbuf[0] = command;
> > > +	status = i2c_transfer(client->adapter, msg, 2);
> > > +	if (status != 2)
> > > +		return status;
> > 
> > i2c_transfer() can return 1 if only one of the two messages was sent.
> > 
> > > +	return 0;
> > > +}
> I have been using BCM2835 for most of my testing. I originally tried using
> i2c_smbus_read_block_data() but that was returning errors. However, from your
> email, I went back and tried i2c_smbus_read_i2c_block_data() and that appears
> to be working so I will switch to that instead.
> 
This is odd, since the function should do a SMBus block read. Did you pass a
buffer that was too small, by any chance ?

> > > +
> > > +/**
> > > + * Helper function required since linux SMBus implementation does not currently
> > > + * (v5.6) support the SMBus 3.0 "Read 32" protocol
> > > + */
> > > +static s32 raa_dmpvr2_smbus_read32(const struct i2c_client *client, u8 command,
> > > +				   unsigned char *data)
> > > +{
> > > +	int status;
> > > +	unsigned char msgbuf[1];
> > > +	struct i2c_msg msg[2] = {
> > > +		{
> > > +			.addr = client->addr,
> > > +			.flags = client->flags,
> > > +			.len = 1,
> > > +			.buf = msgbuf,
> > > +		},
> > > +		{
> > > +			.addr = client->addr,
> > > +			.flags = client->flags | I2C_M_RD,
> > > +			.len = 4,
> > > +			.buf = data,
> > > +		},
> > > +	};
> > > +
> > > +	msgbuf[0] = command;
> > > +	status = i2c_transfer(client->adapter, msg, 2);
> > > +	if (status != 2)
> > > +		return status;
> > > +	return 0;
> > > +}
> > 
> > Maybe it would be worthwhile to consider implementing it ?
> > 
> I could add these functions to i2c-core-smbus instead if that is desired.
> However, I am unsure if it would be proper to only partially update the SMBus
> implementation to match the 3.0 spec. Is there perhaps a better forum to
> discuss adding all of the 3.0 changes?
> 
Never mind, just keep it local. I don't like it too much, but getting patches
accepted into the i2c core might take several releases, and it would be unfair
to impose that on you.

Guenter

  reply	other threads:[~2020-04-22  2:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-20 19:03 [PATCH 0/2] hwmon: (pmbus) add debugfs features for Gen 2 Renesas digital multiphase Grant Peltier
2020-04-20 19:03 ` [PATCH 1/2] hwmon: (pmbus/isl68137) add debugfs config and black box endpoints Grant Peltier
2020-04-21 18:58   ` Guenter Roeck
2020-04-21 21:49     ` Grant Peltier
2020-04-22  2:04       ` Guenter Roeck [this message]
2020-04-22 15:22         ` Grant Peltier
2020-04-20 19:04 ` [PATCH 2/2] docs: hwmon: Update driver documentation for debugfs Grant Peltier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200422020404.GA126375@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=adam.vaughn.xh@renesas.com \
    --cc=grant.peltier.jg@renesas.com \
    --cc=grantpeltier93@gmail.com \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.