From: Ben Dooks <ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>
To: Nishanth Menon <nm-l0cyMroinI0@public.gmane.org>
Cc: "G, Manjunath Kondaiah" <manjugk-l0cyMroinI0@public.gmane.org>,
"ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org"
<ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>,
"linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"Kalliguddi, Hema" <hemahk-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH] OMAP3: I2C: Errata i207: Clear wrong RDR interrupt
Date: Mon, 5 Apr 2010 23:45:24 +0100 [thread overview]
Message-ID: <20100405224524.GB32401@fluff.org.uk> (raw)
In-Reply-To: <4BB4A540.9080000-l0cyMroinI0@public.gmane.org>
On Thu, Apr 01, 2010 at 08:53:04AM -0500, Nishanth Menon wrote:
> G, Manjunath Kondaiah had written, on 04/01/2010 07:20 AM, the following:
> >Under certain rare conditions, I2C_STAT[13].RDR bit may be set
> >and the corresponding interrupt fire, even there is no data in
> >the receive FIFO, or the I2C data transfer is still ongoing.
> >These spurious RDR events must be ignored by the software.
> >
> >This patch handles and ignores RDR spurious interrupts.
> >
> >Reviewed-by: Kalliguddi, Hema <hemahk-l0cyMroinI0@public.gmane.org>
> >Signed-off-by: Manjunatha GK <manjugk-l0cyMroinI0@public.gmane.org>
> >Cc: linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> >Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> >Cc: ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org
> >Cc: Kalliguddi, Hema <hemahk-l0cyMroinI0@public.gmane.org>
> >---
> > drivers/i2c/busses/i2c-omap.c | 13 +++++++++++++
> > 1 files changed, 13 insertions(+), 0 deletions(-)
> >
> >diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> >index f2019d2..acf4076 100644
> >--- a/drivers/i2c/busses/i2c-omap.c
> >+++ b/drivers/i2c/busses/i2c-omap.c
> >@@ -796,6 +796,19 @@ complete:
> > }
> > if (stat & (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR)) {
> > u8 num_bytes = 1;
> >+
> >+ /*
> >+ * OMAP3 I2C Errata ID: i207
> >+ * Under certain rare conditions, RDR could be set again
> >+ * when the bus is busy, then clear and ignore the interrupt
> >+ */
> >+ if (!(stat & OMAP_I2C_STAT_RRDY) && (stat &
> >+ OMAP_I2C_STAT_BB)) {
> >+ /* clear RDR */
> >+ omap_i2c_ack_stat(dev, stat & OMAP_I2C_STAT_RDR);
> >+ dev_err(dev->dev, "I2C: RDR when bus is busy.\n");
> >+ return IRQ_HANDLED;
> >+ }
> couple of comments after reading thru the errata:
> a) the sequence in the errata doc is:
> if (stat & OMAP_I2C_STAT_RDR) { /* This is cleaner that using an
> obtuse check using !(stat & OMAP_I2C_STAT_RRDY) */
> omap_i2c_ack_stat(dev, stat & OMAP_I2C_STAT_RDR); /* dummy read - i
> think this needs clarification as to why */
> if (omap_i2c_read_reg(dev, OMAP_I2C_STAT_REG) & OMAP_I2C_STAT_BB)
> /* reason for the i2c_read_reg is because errata mentions a dummy
> stat read which might mean something for BB -> I am not sure may
> need to be checked with H/w team. */
> continue; /* recheck - faster response compared to return and re
> generate interrupt */
> }
>
>
> b) does this apply to OMAP2 and OMAP4?
Ok, should this be held for further discussion?
--
Ben (ben-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org, http://www.fluff.org/)
'a smiley only costs 4 bytes'
next prev parent reply other threads:[~2010-04-05 22:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-01 12:20 [PATCH] OMAP3: I2C: Errata i207: Clear wrong RDR interrupt Manjunatha GK
[not found] ` <1270124427-11208-1-git-send-email-manjugk-l0cyMroinI0@public.gmane.org>
2010-04-01 13:53 ` Nishanth Menon
[not found] ` <4BB4A540.9080000-l0cyMroinI0@public.gmane.org>
2010-04-05 22:45 ` Ben Dooks [this message]
2010-04-21 10:39 ` G, Manjunath Kondaiah
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=20100405224524.GB32401@fluff.org.uk \
--to=ben-linux-elnmno+kys3ytjvyw6ydsg@public.gmane.org \
--cc=hemahk-l0cyMroinI0@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=manjugk-l0cyMroinI0@public.gmane.org \
--cc=nm-l0cyMroinI0@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.