All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
To: Alexander Kochetkov <al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>,
	Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
	Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH v2 3/4] i2c: omap: don't reset controller if Arbitration Lost detected
Date: Fri, 21 Nov 2014 19:07:28 -0600	[thread overview]
Message-ID: <20141122010728.GB26751@saruman> (raw)
In-Reply-To: <1416610307-3698-1-git-send-email-al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2153 bytes --]

On Sat, Nov 22, 2014 at 02:51:47AM +0400, Alexander Kochetkov wrote:
> Arbitration Lost is an expected situation in a multimaster
> environment. I2C controller (IP) correctly detect and report AL.
> 
> The only one visible reason for reseting IP in the AL case is
> to avoid advisory 1.94 (omap3) and errata i595 (omap4): "I2C:
> After an Arbitration is Lost the Module Incorrectly Starts
> the Next Transfer".
> 
> Errata workaround states: "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 set MST and STT bits
> separately and doesn't create condition for errata. So the reset
> is not necessary.
> 
> Also corrected return value for AL to -EAGAIN.
> 
> Tested on Beagleboard XM C.
> 
> Signed-off-by: Alexander Kochetkov <al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

you could have kept my tested-by and reviewed-by:

Tested-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
Reviewed-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>


> On 21.10.2014 21:11, Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> wrote:
> > The errno for AL is -EAGAIN. Curly braces are not needed.
> 
> Thank you, Wolfram, fixed.
> 
>  drivers/i2c/busses/i2c-omap.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index 3ffb9c0..02da567 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -707,13 +707,15 @@ 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 |
> -			    OMAP_I2C_STAT_XUDF)) {
> +	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 -EAGAIN;
> +
>  	if (dev->cmd_err & OMAP_I2C_STAT_NACK) {
>  		if (msg->flags & I2C_M_IGNORE_NAK)
>  			return 0;
> -- 
> 1.7.9.5
> 

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <balbi@ti.com>
To: Alexander Kochetkov <al.kochet@gmail.com>
Cc: <linux-omap@vger.kernel.org>, <linux-i2c@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, Wolfram Sang <wsa@the-dreams.de>,
	Tony Lindgren <tony@atomide.com>, Felipe Balbi <balbi@ti.com>
Subject: Re: [PATCH v2 3/4] i2c: omap: don't reset controller if Arbitration Lost detected
Date: Fri, 21 Nov 2014 19:07:28 -0600	[thread overview]
Message-ID: <20141122010728.GB26751@saruman> (raw)
In-Reply-To: <1416610307-3698-1-git-send-email-al.kochet@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2053 bytes --]

On Sat, Nov 22, 2014 at 02:51:47AM +0400, Alexander Kochetkov wrote:
> Arbitration Lost is an expected situation in a multimaster
> environment. I2C controller (IP) correctly detect and report AL.
> 
> The only one visible reason for reseting IP in the AL case is
> to avoid advisory 1.94 (omap3) and errata i595 (omap4): "I2C:
> After an Arbitration is Lost the Module Incorrectly Starts
> the Next Transfer".
> 
> Errata workaround states: "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 set MST and STT bits
> separately and doesn't create condition for errata. So the reset
> is not necessary.
> 
> Also corrected return value for AL to -EAGAIN.
> 
> Tested on Beagleboard XM C.
> 
> Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>

you could have kept my tested-by and reviewed-by:

Tested-by: Felipe Balbi <balbi@ti.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>


> On 21.10.2014 21:11, Wolfram Sang <wsa@the-dreams.de> wrote:
> > The errno for AL is -EAGAIN. Curly braces are not needed.
> 
> Thank you, Wolfram, fixed.
> 
>  drivers/i2c/busses/i2c-omap.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index 3ffb9c0..02da567 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -707,13 +707,15 @@ 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 |
> -			    OMAP_I2C_STAT_XUDF)) {
> +	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 -EAGAIN;
> +
>  	if (dev->cmd_err & OMAP_I2C_STAT_NACK) {
>  		if (msg->flags & I2C_M_IGNORE_NAK)
>  			return 0;
> -- 
> 1.7.9.5
> 

-- 
balbi

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2014-11-22  1:07 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
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
     [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 [this message]
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
     [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
     [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-22 19:47     ` [PATCH v3 4/4] i2c: omap: add notes related to i2c " Alexander Kochetkov

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=20141122010728.GB26751@saruman \
    --to=balbi-l0cymroini0@public.gmane.org \
    --cc=al.kochet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@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.