From: Jonathan Cameron <jic23@cam.ac.uk>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org, Michael.Hennerich@analog.com,
Linux I2C <linux-i2c@vger.kernel.org>,
Jean Delvare <khali@linux-fr.org>
Subject: Re: [PATCH V2] input:ad7879-i2c use swapped varient of i2c_smbus_read_word_data
Date: Fri, 21 Oct 2011 17:14:45 +0100 [thread overview]
Message-ID: <4EA19A75.6010907@cam.ac.uk> (raw)
In-Reply-To: <20111021160923.GA19153@core.coreip.homeip.net>
On 10/21/11 17:09, Dmitry Torokhov wrote:
> On Fri, Oct 21, 2011 at 12:57:16PM +0100, Jonathan Cameron wrote:
>> This varient was introduced in
>> i2c: boilerplate function for byte swapped smbus_write/read_word_data
>>
>> This also has the side effect of ensuring any errors from the i2c
>> read and no longer mangled.
>>
>> Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
>> ---
>> V2: include the write function as pointed out by Michael Hennerich.
>>
>> The patch introducing this swapped function is working its way through the i2c
>> tree.
>>
>> drivers/input/touchscreen/ad7879-i2c.c | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/touchscreen/ad7879-i2c.c b/drivers/input/touchscreen/ad7879-i2c.c
>> index 4e4e58c..cc51392 100644
>> --- a/drivers/input/touchscreen/ad7879-i2c.c
>> +++ b/drivers/input/touchscreen/ad7879-i2c.c
>> @@ -47,7 +47,7 @@ static int ad7879_i2c_read(struct device *dev, u8 reg)
>> {
>> struct i2c_client *client = to_i2c_client(dev);
>>
>> - return swab16(i2c_smbus_read_word_data(client, reg));
>> + return i2c_smbus_read_word_swapped(client, reg);
>
> This is still not endian-safe. I wonder if introducing
> i2c_smbus_read_word_swapped() just makes the metter worse by hiding
> this...
>
> I'd prefer if we had i2c_smbus_read_be16() instead.
smbus spec says that all transfers must be little endian.
Hence it is type safe because the smbus controllers are guaranteed to have made
that assumption and converted to cpu endianess. If not they are buggy.
Hence, this is endian safe.
Unfortunately numerous devices do the exact opposite (for successive approximation
ADCs it would be silly to do otherwise.) Hence they use the smbus protocol, but
then have to flip the bytes.
next prev parent reply other threads:[~2011-10-21 16:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-21 10:03 [PATCH] input:ad7879-i2c use swapped varient of i2c_smbus_read_word_data Jonathan Cameron
2011-10-21 10:40 ` Hennerich, Michael
2011-10-21 10:43 ` Hennerich, Michael
2011-10-21 11:57 ` [PATCH V2] " Jonathan Cameron
2011-10-21 16:09 ` Dmitry Torokhov
2011-10-21 16:14 ` Jonathan Cameron [this message]
2011-10-21 16:21 ` Dmitry Torokhov
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=4EA19A75.6010907@cam.ac.uk \
--to=jic23@cam.ac.uk \
--cc=Michael.Hennerich@analog.com \
--cc=dmitry.torokhov@gmail.com \
--cc=khali@linux-fr.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-input@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).