From: Wolfram Sang <wsa@the-dreams.de>
To: Alexander Kochetkov <al.kochet@gmail.com>
Cc: linux-omap@vger.kernel.org, linux-i2c@vger.kernel.org,
linux-kernel@vger.kernel.org, Tony Lindgren <tony@atomide.com>,
Felipe Balbi <balbi@ti.com>
Subject: Re: [PATCH 3/4] i2c: omap: don't reset controller if Arbitration Lost detected
Date: Fri, 21 Nov 2014 19:11:25 +0100 [thread overview]
Message-ID: <20141121181125.GD3754@katana> (raw)
In-Reply-To: <1416518925-20679-4-git-send-email-al.kochet@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1691 bytes --]
On Fri, Nov 21, 2014 at 01:28:44AM +0400, Alexander Kochetkov wrote:
> Arbitration Lost is a expected situation in a multimaster environment.
> IP correctly detect it.
>
> The only reason for reseting IP in the AL case is to be sure to
> avoid advisory 1.94 (omap3) and errata i595 (omap4):
> "I2C: After an Arbitration is Lost the Module Incorrectly Starts
> the Next Transfer" with workaround: "The MST and STT bits inside
> I2C_CON should be set to 1 at the same moment (avoid setting the
> MST bit to 1 while STT = 0)."
>
> The driver never writes MST and STT bits separately and doesn't
> create condition for errata. So the reset is not necessary.
>
> Tested on Beagleboard XM C.
>
> Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
> ---
> drivers/i2c/busses/i2c-omap.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index 3ffb9c0..47103e7 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -707,13 +707,17 @@ static int omap_i2c_xfer_msg(struct i2c_adapter *adap,
> return 0;
>
> /* We have an error */
> - if (dev->cmd_err & (OMAP_I2C_STAT_AL | OMAP_I2C_STAT_ROVR |
> + if (dev->cmd_err & (OMAP_I2C_STAT_ROVR |
> OMAP_I2C_STAT_XUDF)) {
> omap_i2c_reset(dev);
> __omap_i2c_init(dev);
> return -EIO;
> }
>
> + if (dev->cmd_err & OMAP_I2C_STAT_AL) {
> + return -EIO;
> + }
The errno for AL is -EAGAIN. Curly braces are not needed.
> +
> if (dev->cmd_err & OMAP_I2C_STAT_NACK) {
> if (msg->flags & I2C_M_IGNORE_NAK)
> return 0;
> --
> 1.7.9.5
>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2014-11-21 18:11 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-20 21:28 [RFC 0/4] i2c: omap: patch series related to multimaster mode Alexander Kochetkov
2014-11-20 21:28 ` Alexander Kochetkov
2014-11-20 21:28 ` [PATCH 1/4] i2c: omap: cleanup register definitions Alexander Kochetkov
[not found] ` <1416518925-20679-2-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-21 16:08 ` Felipe Balbi
2014-11-21 16:08 ` Felipe Balbi
[not found] ` <1416518925-20679-1-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-20 21:28 ` [PATCH 2/4] i2c: omap: implement workaround for handling invalid BB-bit values Alexander Kochetkov
2014-11-20 21:28 ` Alexander Kochetkov
2014-11-21 16:08 ` Felipe Balbi
2014-11-21 16:08 ` Felipe Balbi
2014-11-22 13:23 ` Wolfram Sang
2014-11-22 13:23 ` Wolfram Sang
2014-11-22 14:06 ` Alexander Kochetkov
2014-11-22 14:06 ` Alexander Kochetkov
[not found] ` <B6D9B4D7-25CB-456F-88B4-EB6A53E33A9D-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-22 18:02 ` Wolfram Sang
2014-11-22 18:02 ` Wolfram Sang
2014-11-23 4:43 ` Felipe Balbi
2014-11-23 4:43 ` Felipe Balbi
2014-11-23 13:18 ` Alexander Kochetkov
2014-11-23 13:18 ` Alexander Kochetkov
2014-11-24 19:08 ` Felipe Balbi
2014-11-24 19:08 ` Felipe Balbi
2014-11-24 19:09 ` Felipe Balbi
2014-11-24 19:09 ` Felipe Balbi
2014-11-22 19:47 ` [PATCH v3 0/4] i2c: omap: patch series related to multimaster mode Alexander Kochetkov
2014-11-22 19:47 ` Alexander Kochetkov
2014-11-22 19:47 ` [PATCH v3 2/4] i2c: omap: implement workaround for handling invalid BB-bit values Alexander Kochetkov
2014-11-24 19:08 ` Kevin Hilman
[not found] ` <CAMAWPa8whctBR6fBFaSzPvm3qn+QK06CimRrxFxxH=0kNkF4UA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-24 19:10 ` Felipe Balbi
2014-11-24 19:10 ` Felipe Balbi
2014-11-24 19:13 ` Wolfram Sang
2014-11-24 19:25 ` Tony Lindgren
2014-11-24 19:25 ` Tony Lindgren
2014-11-24 19:39 ` Alexander Kochetkov
2014-11-24 19:39 ` Alexander Kochetkov
[not found] ` <47A1A441-952C-4AC3-859C-5A8E405767E0-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-24 19:47 ` Tony Lindgren
2014-11-24 19:47 ` Tony Lindgren
2014-11-24 20:05 ` Alexander Kochetkov
[not found] ` <47749B61-5924-4E56-9931-77B0CFC0AAA0-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-25 0:09 ` Alexander Kochetkov
2014-11-25 0:09 ` Alexander Kochetkov
[not found] ` <06376010-5DED-49AA-9494-A9546567E7CA-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-25 15:41 ` Tony Lindgren
2014-11-25 15:41 ` Tony Lindgren
2014-11-24 21:08 ` Alexander Kochetkov
2014-11-24 21:08 ` Alexander Kochetkov
2014-11-26 22:30 ` Alexander Kochetkov
[not found] ` <1416685634-5864-3-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-24 20:33 ` [PATCH] omap: i2c: don't check bus state IP rev3.3 and earlier Alexander Kochetkov
2014-11-24 20:33 ` Alexander Kochetkov
[not found] ` <1416861189-17109-1-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-24 21:08 ` Tony Lindgren
2014-11-24 21:08 ` Tony Lindgren
[not found] ` <20141124210809.GG2817-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2014-11-24 22:20 ` [PATCH v2] " Alexander Kochetkov
2014-11-24 22:20 ` Alexander Kochetkov
2014-11-25 14:19 ` Wolfram Sang
2014-11-25 14:38 ` Alexander Kochetkov
[not found] ` <7E0A0B24-91D5-41A4-B007-004C5965D0D7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-25 19:13 ` Kevin Hilman
2014-11-25 19:13 ` Kevin Hilman
[not found] ` <7hvbm3jdq1.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2014-11-26 19:26 ` Alexander Kochetkov
2014-11-26 19:26 ` Alexander Kochetkov
[not found] ` <65BAE81D-E894-48EB-B5A0-0D0FFB9B448F-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-26 21:33 ` Kevin Hilman
2014-11-26 21:33 ` Kevin Hilman
[not found] ` <1416867655-22232-1-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-25 19:12 ` Kevin Hilman
2014-11-25 19:12 ` Kevin Hilman
2014-11-26 19:05 ` [RFC] i2c: omap: TEST: do IP reset during probe Alexander Kochetkov
2014-11-26 21:25 ` Kevin Hilman
[not found] ` <7hzjbdd57j.fsf-1D3HCaltpLuhEniVeURVKkEOCMrvLtNR@public.gmane.org>
2014-11-28 22:13 ` Tony Lindgren
2014-11-28 22:13 ` Tony Lindgren
[not found] ` <20141128221350.GW2817-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2014-11-28 23:25 ` Alexander Kochetkov
2014-11-28 23:25 ` Alexander Kochetkov
[not found] ` <E4A4FA05-0752-41CB-B86B-84035C6EAF05-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-29 22:06 ` Tony Lindgren
2014-11-29 22:06 ` Tony Lindgren
2014-11-29 2:14 ` Alexander Kochetkov
2014-11-29 2:14 ` Alexander Kochetkov
2014-11-22 19:47 ` [PATCH v3 4/4] i2c: omap: add notes related to i2c multimaster mode Alexander Kochetkov
[not found] ` <1416685634-5864-1-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-22 19:47 ` [PATCH v3 1/4] i2c: omap: cleanup register definitions Alexander Kochetkov
2014-11-22 19:47 ` Alexander Kochetkov
2014-11-22 19:47 ` [PATCH v3 3/4] i2c: omap: don't reset controller if Arbitration Lost detected Alexander Kochetkov
2014-11-22 19:47 ` Alexander Kochetkov
2014-11-22 21:08 ` [PATCH v3 0/4] i2c: omap: patch series related to multimaster mode Wolfram Sang
2014-11-22 21:08 ` Wolfram Sang
2014-11-20 21:28 ` [PATCH 3/4] i2c: omap: don't reset controller if Arbitration Lost detected Alexander Kochetkov
2014-11-21 16:08 ` Felipe Balbi
2014-11-21 16:08 ` Felipe Balbi
2014-11-21 18:11 ` Wolfram Sang [this message]
[not found] ` <1416518925-20679-4-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-21 22:51 ` [PATCH v2 " Alexander Kochetkov
2014-11-21 22:51 ` Alexander Kochetkov
[not found] ` <1416610307-3698-1-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-11-22 1:07 ` Felipe Balbi
2014-11-22 1:07 ` Felipe Balbi
2014-11-20 21:28 ` [PATCH 4/4] i2c: omap: add notes related to i2c multimaster mode Alexander Kochetkov
2014-11-21 16:08 ` Felipe Balbi
2014-11-21 16:08 ` Felipe Balbi
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=20141121181125.GD3754@katana \
--to=wsa@the-dreams.de \
--cc=al.kochet@gmail.com \
--cc=balbi@ti.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=tony@atomide.com \
/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.