From: Christian Ruppert <christian.ruppert-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org>
To: Andy Shevchenko
<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: Mika Westerberg
<mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [RFC PATCH] i2c-designware-core: disable adapter before fill dev structure
Date: Thu, 13 Jun 2013 10:16:24 +0200 [thread overview]
Message-ID: <20130613081621.GB19061@ab42.lan> (raw)
In-Reply-To: <1370597401-22501-1-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Hello,
As promised, I gave this one some over-night stress testing and I can
confirm what I said previously:
- The patch does _not_ solve the interrupt loop lockups on its own.
- The patch works well in conjunction with
http://patchwork.ozlabs.org/patch/249622/ (which in turn depends on
Mika's patch). Under this condition you can assume
Tested-By: Christian Ruppert <christian.ruppert-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org>
I still think the code is more logical with this patch than without it
and I am in favour of applying both (if Andy agrees that is). We must
keep in mind, however, that http://patchwork.ozlabs.org/patch/249622
does fix a real problem we can observe on our chip and for our TB10x
product we do require some form of it for stability reasons.
Greetings,
Christian
On Fri, Jun 07, 2013 at 12:30:01PM +0300, Andy Shevchenko wrote:
> Signed-off-by: Andy Shevchenko <andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> ---
> drivers/i2c/busses/i2c-designware-core.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c
> index c41ca63..a1d3d95 100644
> --- a/drivers/i2c/busses/i2c-designware-core.c
> +++ b/drivers/i2c/busses/i2c-designware-core.c
> @@ -366,9 +366,6 @@ static void i2c_dw_xfer_init(struct dw_i2c_dev *dev)
> struct i2c_msg *msgs = dev->msgs;
> u32 ic_con;
>
> - /* Disable the adapter */
> - __i2c_dw_enable(dev, false);
> -
> /* set the slave (target) address */
> dw_writel(dev, msgs[dev->msg_write_idx].addr, DW_IC_TAR);
>
> @@ -561,6 +558,13 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> mutex_lock(&dev->lock);
> pm_runtime_get_sync(dev->dev);
>
> + ret = i2c_dw_wait_bus_not_busy(dev);
> + if (ret < 0)
> + goto done;
> +
> + /* Disable the adapter */
> + __i2c_dw_enable(dev, false);
> +
> INIT_COMPLETION(dev->cmd_complete);
> dev->msgs = msgs;
> dev->msgs_num = num;
> @@ -572,10 +576,6 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> dev->abort_source = 0;
> dev->rx_outstanding = 0;
>
> - ret = i2c_dw_wait_bus_not_busy(dev);
> - if (ret < 0)
> - goto done;
> -
> /* start the transfers */
> i2c_dw_xfer_init(dev);
>
> --
> 1.8.2.rc0.22.gb3600c3
>
--
Christian Ruppert , <christian.ruppert@abilis.com>
/|
Tel: +41/(0)22 816 19-42 //| 3, Chemin du Pré-Fleuri
_// | bilis Systems CH-1228 Plan-les-Ouates
next prev parent reply other threads:[~2013-06-13 8:16 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-06 13:43 [PATCH 1/2] i2c: designware: fix race between subsequent xfers Christian Ruppert
[not found] ` <1370526216-10060-1-git-send-email-christian.ruppert-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org>
2013-06-06 13:43 ` [PATCH 2/2] i2c: designware: make i2c xfers non-interruptible Christian Ruppert
[not found] ` <1370526216-10060-2-git-send-email-christian.ruppert-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org>
2013-06-07 5:25 ` Mika Westerberg
[not found] ` <20130607052555.GC11878-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-06-07 7:55 ` Christian Ruppert
2013-06-07 5:23 ` [PATCH 1/2] i2c: designware: fix race between subsequent xfers Mika Westerberg
[not found] ` <20130607052353.GB11878-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-06-07 8:16 ` Christian Ruppert
2013-06-07 8:51 ` [PATCH V2] " Christian Ruppert
[not found] ` <1370595083-801-1-git-send-email-christian.ruppert-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org>
2013-06-07 9:19 ` Andy Shevchenko
[not found] ` <CAHp75VfwSTO7UoEGVpd7qdFVSFNYrBG6aXx1Oj8UAkgbmi=1XQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-06-07 9:30 ` [RFC PATCH] i2c-designware-core: disable adapter before fill dev structure Andy Shevchenko
[not found] ` <1370597401-22501-1-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2013-06-07 13:01 ` Christian Ruppert
[not found] ` <20130607130133.GH11875-7oYq3qWSd+k@public.gmane.org>
2013-06-11 18:40 ` Wolfram Sang
2013-06-12 9:41 ` Christian Ruppert
2013-06-13 8:16 ` Christian Ruppert [this message]
[not found] ` <20130613081621.GB19061-7oYq3qWSd+k@public.gmane.org>
2013-06-13 8:33 ` Andy Shevchenko
2013-06-13 8:58 ` Christian Ruppert
2013-06-14 14:37 ` [PATCH V2] i2c: designware: fix race between subsequent xfers Wolfram Sang
2013-06-17 8:19 ` Christian Ruppert
[not found] ` <20130617081931.GB19380-7oYq3qWSd+k@public.gmane.org>
2013-06-17 8:33 ` Jean Delvare
[not found] ` <20130617103336.354022c2-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2013-06-17 9:01 ` Christian Ruppert
2013-06-17 8:34 ` Mika Westerberg
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=20130613081621.GB19061@ab42.lan \
--to=christian.ruppert-ux6zf3sgzrrqt0dzr+alfa@public.gmane.org \
--cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mika.westerberg-VuQAYsv1563Yd54FQh9/CA@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 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).