All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
To: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>,
	Harini Katakam
	<harinikatakamlinux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	"grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
	<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	"robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
	<robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Pawel Moll <Pawel.Moll-5wv7dgnIgG8@public.gmane.org>,
	"ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org"
	<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
	"galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org"
	<galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	"michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org"
	<michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>,
	"soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org"
	<soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>,
	"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
	<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
	"linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"vishnum-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org"
	<vishnum-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C
Date: Tue, 02 Dec 2014 16:12:48 +0100	[thread overview]
Message-ID: <547DD6F0.6060006@metafoo.de> (raw)
In-Reply-To: <20141202141548.GA5883@katana>

On 12/02/2014 03:15 PM, Wolfram Sang wrote:
>>> What do you do when disable repeated start? Sending STOP and START? If
>>> so, this is really something different than repeated start. By using
>>> I2C_FUNC_I2C a user expects repeated start, so if the HW does not
>>> support it, we should say so and don't try to emulate it with something
>>> different.
>>
>> Yes, we send stop.
>
> As said before, this is wrong. Another master could interfere between
> the messages when using stop+start. This is no replacement for repeated
> start.

More importantly a lot of I2C slaves also reset their internal state machine 
on a stop. So e.g. if reading a register is implemented by doing 
start,write,repeated start,read,stop and you replace that with 
start,write,stop,start,read,stop you'll always read register zero instead of 
the register you wanted to read.

- Lars

WARNING: multiple messages have this Message-ID (diff)
From: lars@metafoo.de (Lars-Peter Clausen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C
Date: Tue, 02 Dec 2014 16:12:48 +0100	[thread overview]
Message-ID: <547DD6F0.6060006@metafoo.de> (raw)
In-Reply-To: <20141202141548.GA5883@katana>

On 12/02/2014 03:15 PM, Wolfram Sang wrote:
>>> What do you do when disable repeated start? Sending STOP and START? If
>>> so, this is really something different than repeated start. By using
>>> I2C_FUNC_I2C a user expects repeated start, so if the HW does not
>>> support it, we should say so and don't try to emulate it with something
>>> different.
>>
>> Yes, we send stop.
>
> As said before, this is wrong. Another master could interfere between
> the messages when using stop+start. This is no replacement for repeated
> start.

More importantly a lot of I2C slaves also reset their internal state machine 
on a stop. So e.g. if reading a register is implemented by doing 
start,write,repeated start,read,stop and you replace that with 
start,write,stop,start,read,stop you'll always read register zero instead of 
the register you wanted to read.

- Lars

WARNING: multiple messages have this Message-ID (diff)
From: Lars-Peter Clausen <lars@metafoo.de>
To: Wolfram Sang <wsa@the-dreams.de>,
	Harini Katakam <harinikatakamlinux@gmail.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	"grant.likely@linaro.org" <grant.likely@linaro.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	Pawel Moll <Pawel.Moll@arm.com>,
	"ijc+devicetree@hellion.org.uk" <ijc+devicetree@hellion.org.uk>,
	"galak@codeaurora.org" <galak@codeaurora.org>,
	"michal.simek@xilinx.com" <michal.simek@xilinx.com>,
	"soren.brinkmann@xilinx.com" <soren.brinkmann@xilinx.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"vishnum@xilinx.com" <vishnum@xilinx.com>
Subject: Re: [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C
Date: Tue, 02 Dec 2014 16:12:48 +0100	[thread overview]
Message-ID: <547DD6F0.6060006@metafoo.de> (raw)
In-Reply-To: <20141202141548.GA5883@katana>

On 12/02/2014 03:15 PM, Wolfram Sang wrote:
>>> What do you do when disable repeated start? Sending STOP and START? If
>>> so, this is really something different than repeated start. By using
>>> I2C_FUNC_I2C a user expects repeated start, so if the HW does not
>>> support it, we should say so and don't try to emulate it with something
>>> different.
>>
>> Yes, we send stop.
>
> As said before, this is wrong. Another master could interfere between
> the messages when using stop+start. This is no replacement for repeated
> start.

More importantly a lot of I2C slaves also reset their internal state machine 
on a stop. So e.g. if reading a register is implemented by doing 
start,write,repeated start,read,stop and you replace that with 
start,write,stop,start,read,stop you'll always read register zero instead of 
the register you wanted to read.

- Lars


  reply	other threads:[~2014-12-02 15:12 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-02 10:05 [PATCH 0/4] Cadence I2C driver fixes Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 10:05 ` [PATCH 1/4] i2c: cadence: Handle > 252 byte transfers Harini Katakam
2014-12-02 10:05   ` Harini Katakam
     [not found] ` <1417514749-24319-1-git-send-email-harinik-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2014-12-02 10:05   ` [PATCH 2/4] i2c: cadence: Set the hardware time-out register to maximum value Harini Katakam
2014-12-02 10:05     ` Harini Katakam
2014-12-02 10:05     ` Harini Katakam
2014-12-03 11:28     ` Wolfram Sang
2014-12-03 11:28       ` Wolfram Sang
2014-12-02 10:05   ` [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C Harini Katakam
2014-12-02 10:05     ` Harini Katakam
2014-12-02 10:05     ` Harini Katakam
2014-12-02 11:19     ` Mark Rutland
2014-12-02 11:19       ` Mark Rutland
2014-12-02 12:13       ` Harini Katakam
2014-12-02 12:13         ` Harini Katakam
2014-12-02 12:13         ` Harini Katakam
     [not found]         ` <CAFcVECLtPx6shBXJbg9Uf_8fnhkMoO1zpoxGcdda7PSA7z_2rA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-02 12:52           ` Wolfram Sang
2014-12-02 12:52             ` Wolfram Sang
2014-12-02 12:52             ` Wolfram Sang
2014-12-02 13:10             ` Harini Katakam
2014-12-02 13:10               ` Harini Katakam
2014-12-02 13:10               ` Harini Katakam
     [not found]               ` <CAFcVECJwFoFd6GrmF282CG+fELnYb=FNCTDq=RYKky_dHha=Jg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-02 13:16                 ` Wolfram Sang
2014-12-02 13:16                   ` Wolfram Sang
2014-12-02 13:16                   ` Wolfram Sang
2014-12-02 13:30                   ` Harini Katakam
2014-12-02 13:30                     ` Harini Katakam
2014-12-02 14:15                     ` Wolfram Sang
2014-12-02 14:15                       ` Wolfram Sang
2014-12-02 15:12                       ` Lars-Peter Clausen [this message]
2014-12-02 15:12                         ` Lars-Peter Clausen
2014-12-02 15:12                         ` Lars-Peter Clausen
2014-12-02 10:05   ` [PATCH 4/4] i2c: cadence: Defeature repeated start based on devicetree property Harini Katakam
2014-12-02 10:05     ` Harini Katakam
2014-12-02 10:05     ` Harini Katakam
     [not found]     ` <1417514749-24319-5-git-send-email-harinik-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2014-12-02 11:21       ` Mark Rutland
2014-12-02 11:21         ` Mark Rutland
2014-12-02 11:21         ` Mark Rutland

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=547DD6F0.6060006@metafoo.de \
    --to=lars-qo5elluwu/uelga04laivw@public.gmane.org \
    --cc=Pawel.Moll-5wv7dgnIgG8@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=harinikatakamlinux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
    --cc=vishnum-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
    --cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.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.