linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: OMAP2+ i2c NACK without STP
       [not found] ` <20110614102409.GN3352-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
@ 2011-06-14 10:54   ` Jan Weitzel
  2011-12-27 14:48     ` T Krishnamoorthy, Balaji
  0 siblings, 1 reply; 3+ messages in thread
From: Jan Weitzel @ 2011-06-14 10:54 UTC (permalink / raw)
  To: linux-omap-u79uwXL29TY76Z2rM5mHXA, b-cousson-l0cyMroinI0,
	andy.green-QSEj5FYQhm4dnm+yROfE0A, patches-QSEj5FYQhm4dnm+yROfE0A
  Cc: andy-/Zus8d0mwwtBDgjK7y7TUQ, tony-4v6yS6AI5VpBDgjK7y7TUQ,
	peter.maydell-QSEj5FYQhm4dnm+yROfE0A, khilman-l0cyMroinI0,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA, Jan Weitzel

On OMAP4 OMAP_I2C_STAT_NACK is causing a timeout on the next access.
The isr cleans all flags in OMAP_I2C_CON_REG by setting OMAP_I2C_CON_STP
OMAP_I2C_CON_STP is also set in omap_i2c_xfer_msg on the last message.

According to the TI TSR the sequence for OMAP_I2C_STAT_NACK and
OMAP_I2C_STAT_AL are nearly the same.
Removing the OMAP_I2C_CON_STP part in the isr fix the problem.
Tested on OMAP4430 and OMAP3530 (here NACK was not a problem)
Fixes also booting on 2430sdp.

Signed-off-by: Jan Weitzel <j.weitzel-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org>
Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
---
 drivers/i2c/busses/i2c-omap.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 58a58c7..670f2a2 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -836,11 +836,9 @@ complete:
 				~(OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
 				OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
 
-		if (stat & OMAP_I2C_STAT_NACK) {
+		if (stat & OMAP_I2C_STAT_NACK)
 			err |= OMAP_I2C_STAT_NACK;
-			omap_i2c_write_reg(dev, OMAP_I2C_CON_REG,
-					   OMAP_I2C_CON_STP);
-		}
+
 		if (stat & OMAP_I2C_STAT_AL) {
 			dev_err(dev->dev, "Arbitration lost\n");
 			err |= OMAP_I2C_STAT_AL;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ARM: OMAP2+ i2c NACK without STP
  2011-06-14 10:54   ` [PATCH] ARM: OMAP2+ i2c NACK without STP Jan Weitzel
@ 2011-12-27 14:48     ` T Krishnamoorthy, Balaji
       [not found]       ` <CANrkHUZ530H+0+YKy2QJPFbwUQ1zqD=OaSrF6ByTbpx6eU421Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: T Krishnamoorthy, Balaji @ 2011-12-27 14:48 UTC (permalink / raw)
  To: ben-linux, linux-i2c
  Cc: linux-omap, b-cousson, andy.green, patches, andy, tony,
	peter.maydell, khilman, Jan Weitzel, Shubhrajyoti Datta

On Tue, Jun 14, 2011 at 4:24 PM, Jan Weitzel <j.weitzel@phytec.de> wrote:
> On OMAP4 OMAP_I2C_STAT_NACK is causing a timeout on the next access.
> The isr cleans all flags in OMAP_I2C_CON_REG by setting OMAP_I2C_CON_STP
> OMAP_I2C_CON_STP is also set in omap_i2c_xfer_msg on the last message.
>
> According to the TI TSR the sequence for OMAP_I2C_STAT_NACK and
> OMAP_I2C_STAT_AL are nearly the same.
> Removing the OMAP_I2C_CON_STP part in the isr fix the problem.
> Tested on OMAP4430 and OMAP3530 (here NACK was not a problem)
> Fixes also booting on 2430sdp.
>
> Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
> Acked-by: Tony Lindgren <tony@atomide.com>

Acked-by: Balaji T K <balajitk@ti.com>
Can you please queue this patch

This patch has been tested in linux-omap tree
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap.git;a=commit;h=464fca36d98b97ccd05e4f200ab7483d3acc8345

> ---
>  drivers/i2c/busses/i2c-omap.c |    6 ++----
>  1 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index 58a58c7..670f2a2 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -836,11 +836,9 @@ complete:
>                                ~(OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
>                                OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
>
> -               if (stat & OMAP_I2C_STAT_NACK) {
> +               if (stat & OMAP_I2C_STAT_NACK)
>                        err |= OMAP_I2C_STAT_NACK;
> -                       omap_i2c_write_reg(dev, OMAP_I2C_CON_REG,
> -                                          OMAP_I2C_CON_STP);
> -               }
> +
>                if (stat & OMAP_I2C_STAT_AL) {
>                        dev_err(dev->dev, "Arbitration lost\n");
>                        err |= OMAP_I2C_STAT_AL;
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ARM: OMAP2+ i2c NACK without STP
       [not found]       ` <CANrkHUZ530H+0+YKy2QJPFbwUQ1zqD=OaSrF6ByTbpx6eU421Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2012-01-04  0:07         ` Kevin Hilman
  0 siblings, 0 replies; 3+ messages in thread
From: Kevin Hilman @ 2012-01-04  0:07 UTC (permalink / raw)
  To: T Krishnamoorthy, Balaji
  Cc: ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, b-cousson-l0cyMroinI0,
	andy.green-QSEj5FYQhm4dnm+yROfE0A, patches-QSEj5FYQhm4dnm+yROfE0A,
	andy-/Zus8d0mwwtBDgjK7y7TUQ, tony-4v6yS6AI5VpBDgjK7y7TUQ,
	peter.maydell-QSEj5FYQhm4dnm+yROfE0A, Jan Weitzel,
	Shubhrajyoti Datta

"T Krishnamoorthy, Balaji" <balajitk-l0cyMroinI0@public.gmane.org> writes:

> On Tue, Jun 14, 2011 at 4:24 PM, Jan Weitzel <j.weitzel-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org> wrote:
>> On OMAP4 OMAP_I2C_STAT_NACK is causing a timeout on the next access.
>> The isr cleans all flags in OMAP_I2C_CON_REG by setting OMAP_I2C_CON_STP
>> OMAP_I2C_CON_STP is also set in omap_i2c_xfer_msg on the last message.
>>
>> According to the TI TSR the sequence for OMAP_I2C_STAT_NACK and
>> OMAP_I2C_STAT_AL are nearly the same.
>> Removing the OMAP_I2C_CON_STP part in the isr fix the problem.
>> Tested on OMAP4430 and OMAP3530 (here NACK was not a problem)
>> Fixes also booting on 2430sdp.
>>
>> Signed-off-by: Jan Weitzel <j.weitzel-guT5V/WYfQezQB+pC5nmwQ@public.gmane.org>
>> Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
>
> Acked-by: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org>
> Can you please queue this patch
>
> This patch has been tested in linux-omap tree
> http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap.git;a=commit;h=464fca36d98b97ccd05e4f200ab7483d3acc8345

I have this patch in my queue (branch: for_3.3/i2c/misc), but
unfortunately,  the maintainer has not responded to any of my queries or
pull requests for a couple months now.

I have sent some more off-list queries recently in hopes to get this
moving again.

Kevin

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-01-04  0:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20110614102409.GN3352@atomide.com>
     [not found] ` <20110614102409.GN3352-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2011-06-14 10:54   ` [PATCH] ARM: OMAP2+ i2c NACK without STP Jan Weitzel
2011-12-27 14:48     ` T Krishnamoorthy, Balaji
     [not found]       ` <CANrkHUZ530H+0+YKy2QJPFbwUQ1zqD=OaSrF6ByTbpx6eU421Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-04  0:07         ` Kevin Hilman

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).