linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
@ 2011-02-11  6:45 Keerthy
       [not found] ` <1297406718-24147-1-git-send-email-j-keerthy-l0cyMroinI0@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Keerthy @ 2011-02-11  6:45 UTC (permalink / raw)
  To: ben-i2c-elnMNo+KYs3YtjvyW6yDsg, linux-i2c-u79uwXL29TY76Z2rM5mHXA
  Cc: linux-omap-u79uwXL29TY76Z2rM5mHXA, j-keerthy-l0cyMroinI0,
	Richard woodruff

From: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>

ProDB00017052 - ARDY interrupt reasserted after being cleared.
This errata caused intermittent i2c instabilty(1 error per 3 hours) on several
customer platforms. After applying the workaround the intermittent errors were
not seen. This is not captured in the usual errata documents.

The workaround is to have a double clear of ARDY status in
irq handler.

Signed-off-by: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
Signed-off-by: Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>
---
 drivers/i2c/busses/i2c-omap.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 445de08..9bcefae 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -851,7 +851,8 @@ complete:
 					OMAP_I2C_STAT_AL)) {
 			omap_i2c_ack_stat(dev, stat &
 				(OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
-				OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
+				OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR |
+				OMAP_I2C_STAT_ARDY));
 			omap_i2c_complete_cmd(dev, err);
 			return IRQ_HANDLED;
 		}
-- 
1.7.0.4

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

* Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
       [not found] ` <1297406718-24147-1-git-send-email-j-keerthy-l0cyMroinI0@public.gmane.org>
@ 2011-02-11 10:50   ` Jarkko Nikula
  2011-02-14 10:01     ` J, KEERTHY
  2011-02-15  0:05   ` Kevin Hilman
  1 sibling, 1 reply; 7+ messages in thread
From: Jarkko Nikula @ 2011-02-11 10:50 UTC (permalink / raw)
  To: Keerthy
  Cc: ben-i2c-elnMNo+KYs3YtjvyW6yDsg, linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, Richard woodruff

On Fri, 11 Feb 2011 12:15:18 +0530
Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org> wrote:

> From: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
> 
> ProDB00017052 - ARDY interrupt reasserted after being cleared.
> This errata caused intermittent i2c instabilty(1 error per 3 hours) on several
> customer platforms. After applying the workaround the intermittent errors were
> not seen. This is not captured in the usual errata documents.
> 
> The workaround is to have a double clear of ARDY status in
> irq handler.
> 
> Signed-off-by: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
> Signed-off-by: Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>
> ---
>  drivers/i2c/busses/i2c-omap.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index 445de08..9bcefae 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -851,7 +851,8 @@ complete:
>  					OMAP_I2C_STAT_AL)) {
>  			omap_i2c_ack_stat(dev, stat &
>  				(OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
> -				OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
> +				OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR |
> +				OMAP_I2C_STAT_ARDY));

Most probably this is correct but I was just wondering are there any use
for ARDY interrupt (register access ready) anyway and is the ARDY here
caused by omap_i2c_write_reg for STAT_NACK in a few lines above.

Just my 2 cents about possible further patches (while this having the
priority as fixes the issue).

-- 
Jarkko

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

* Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
  2011-02-11 10:50   ` Jarkko Nikula
@ 2011-02-14 10:01     ` J, KEERTHY
  0 siblings, 0 replies; 7+ messages in thread
From: J, KEERTHY @ 2011-02-14 10:01 UTC (permalink / raw)
  To: Jarkko Nikula; +Cc: ben-i2c, linux-i2c, linux-omap, Richard woodruff

On Fri, Feb 11, 2011 at 4:20 PM, Jarkko Nikula <jhnikula@gmail.com> wrote:
> On Fri, 11 Feb 2011 12:15:18 +0530
> Keerthy <j-keerthy@ti.com> wrote:
>
>> From: Richard woodruff <r-woodruff2@ti.com>
>>
>> ProDB00017052 - ARDY interrupt reasserted after being cleared.
>> This errata caused intermittent i2c instabilty(1 error per 3 hours) on several
>> customer platforms. After applying the workaround the intermittent errors were
>> not seen. This is not captured in the usual errata documents.
>>
>> The workaround is to have a double clear of ARDY status in
>> irq handler.
>>
>> Signed-off-by: Richard woodruff <r-woodruff2@ti.com>
>> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> ---
>>  drivers/i2c/busses/i2c-omap.c |    3 ++-
>>  1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
>> index 445de08..9bcefae 100644
>> --- a/drivers/i2c/busses/i2c-omap.c
>> +++ b/drivers/i2c/busses/i2c-omap.c
>> @@ -851,7 +851,8 @@ complete:
>>                                       OMAP_I2C_STAT_AL)) {
>>                       omap_i2c_ack_stat(dev, stat &
>>                               (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
>> -                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
>> +                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR |
>> +                             OMAP_I2C_STAT_ARDY));
>
> Most probably this is correct but I was just wondering are there any use
> for ARDY interrupt (register access ready) anyway and is the ARDY here
> caused by omap_i2c_write_reg for STAT_NACK in a few lines above.
>
Hello Jarkko,

ARDY interrupt indicates that the previous access has been performed
and the registers are ready to be accessed again. Coming to the second
part i checked even when the STAT_NACK bit is set and after
omap_i2c_write_reg the ARDY bit is not set. So that does not seem to
be the cause of ARDY getting set.


> Just my 2 cents about possible further patches (while this having the
> priority as fixes the issue).
>
> --
> Jarkko
>



-- 
Regards and Thanks,
Keerthy
--
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] 7+ messages in thread

* Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
       [not found] ` <1297406718-24147-1-git-send-email-j-keerthy-l0cyMroinI0@public.gmane.org>
  2011-02-11 10:50   ` Jarkko Nikula
@ 2011-02-15  0:05   ` Kevin Hilman
       [not found]     ` <877hd2xivn.fsf-l0cyMroinI0@public.gmane.org>
  1 sibling, 1 reply; 7+ messages in thread
From: Kevin Hilman @ 2011-02-15  0:05 UTC (permalink / raw)
  To: Keerthy
  Cc: ben-i2c-elnMNo+KYs3YtjvyW6yDsg, linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, Richard woodruff

Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org> writes:

> From: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
>
> ProDB00017052 - ARDY interrupt reasserted after being cleared.

> This errata caused intermittent i2c instabilty(1 error per 3 hours) on several
> customer platforms. After applying the workaround the intermittent errors were
> not seen. This is not captured in the usual errata documents.

This (presumably internal) ProDB number above is meaningless in the
public changelog.  In lieu of a public erratum number, just summarize
the erratum/instability seen, references to other relevant public
errata (if any) would be useful too.   IOW, "instability" isn't quite
accurate enough.  A more detailed description of the problem/instability
is needed.

Thanks,

Kevin

>
> The workaround is to have a double clear of ARDY status in
> irq handler.
>
> Signed-off-by: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
> Signed-off-by: Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>
> ---
>  drivers/i2c/busses/i2c-omap.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index 445de08..9bcefae 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -851,7 +851,8 @@ complete:
>  					OMAP_I2C_STAT_AL)) {
>  			omap_i2c_ack_stat(dev, stat &
>  				(OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
> -				OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
> +				OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR |
> +				OMAP_I2C_STAT_ARDY));
>  			omap_i2c_complete_cmd(dev, err);
>  			return IRQ_HANDLED;
>  		}

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

* Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
       [not found]     ` <877hd2xivn.fsf-l0cyMroinI0@public.gmane.org>
@ 2011-02-15  4:43       ` J, KEERTHY
       [not found]         ` <AANLkTikdDsq0mku6Jakq-cxA3jYYHQ7CL0sjwJ6wzXNh-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: J, KEERTHY @ 2011-02-15  4:43 UTC (permalink / raw)
  To: Kevin Hilman
  Cc: ben-i2c-elnMNo+KYs3YtjvyW6yDsg, linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, Richard woodruff

On Tue, Feb 15, 2011 at 5:35 AM, Kevin Hilman <khilman-l0cyMroinI0@public.gmane.org> wrote:
> Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org> writes:
>
>> From: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
>>
>> ProDB00017052 - ARDY interrupt reasserted after being cleared.
>
>> This errata caused intermittent i2c instabilty(1 error per 3 hours) on several
>> customer platforms. After applying the workaround the intermittent errors were
>> not seen. This is not captured in the usual errata documents.
>
> This (presumably internal) ProDB number above is meaningless in the
> public changelog.  In lieu of a public erratum number, just summarize
> the erratum/instability seen, references to other relevant public
> errata (if any) would be useful too.   IOW, "instability" isn't quite
> accurate enough.  A more detailed description of the problem/instability
> is needed.
>

Kevin,

Yes the ProDB number is internal. I will remove it from the change log.
I will add a more detailed description of the problem.

-- 
Regards and Thanks,
Keerthy


> Thanks,
>
> Kevin
>
>>
>> The workaround is to have a double clear of ARDY status in
>> irq handler.
>>
>> Signed-off-by: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
>> Signed-off-by: Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>
>> ---
>>  drivers/i2c/busses/i2c-omap.c |    3 ++-
>>  1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
>> index 445de08..9bcefae 100644
>> --- a/drivers/i2c/busses/i2c-omap.c
>> +++ b/drivers/i2c/busses/i2c-omap.c
>> @@ -851,7 +851,8 @@ complete:
>>                                       OMAP_I2C_STAT_AL)) {
>>                       omap_i2c_ack_stat(dev, stat &
>>                               (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
>> -                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
>> +                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR |
>> +                             OMAP_I2C_STAT_ARDY));
>>                       omap_i2c_complete_cmd(dev, err);
>>                       return IRQ_HANDLED;
>>               }
>

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

* Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
       [not found]         ` <AANLkTikdDsq0mku6Jakq-cxA3jYYHQ7CL0sjwJ6wzXNh-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2011-02-15 23:52           ` Ben Dooks
  2011-02-16  4:00             ` J, KEERTHY
  0 siblings, 1 reply; 7+ messages in thread
From: Ben Dooks @ 2011-02-15 23:52 UTC (permalink / raw)
  To: J, KEERTHY
  Cc: Kevin Hilman, ben-i2c-elnMNo+KYs3YtjvyW6yDsg,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, Richard woodruff

On Tue, Feb 15, 2011 at 10:13:58AM +0530, J, KEERTHY wrote:
> On Tue, Feb 15, 2011 at 5:35 AM, Kevin Hilman <khilman-l0cyMroinI0@public.gmane.org> wrote:
> > Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org> writes:
> >
> >> From: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
> >>
> >> ProDB00017052 - ARDY interrupt reasserted after being cleared.
> >
> >> This errata caused intermittent i2c instabilty(1 error per 3 hours) on several
> >> customer platforms. After applying the workaround the intermittent errors were
> >> not seen. This is not captured in the usual errata documents.
> >
> > This (presumably internal) ProDB number above is meaningless in the
> > public changelog.  In lieu of a public erratum number, just summarize
> > the erratum/instability seen, references to other relevant public
> > errata (if any) would be useful too.   IOW, "instability" isn't quite
> > accurate enough.  A more detailed description of the problem/instability
> > is needed.
> >
> 
> Kevin,
> 
> Yes the ProDB number is internal. I will remove it from the change log.
> I will add a more detailed description of the problem.

Leave it in a comment at the most, it might be useful, otherwise please
respond to Kevin's review and then it'll be ready to merge.
 
> -- 
> Regards and Thanks,
> Keerthy
> 
> 
> > Thanks,
> >
> > Kevin
> >
> >>
> >> The workaround is to have a double clear of ARDY status in
> >> irq handler.
> >>
> >> Signed-off-by: Richard woodruff <r-woodruff2-l0cyMroinI0@public.gmane.org>
> >> Signed-off-by: Keerthy <j-keerthy-l0cyMroinI0@public.gmane.org>
> >> ---
> >>  drivers/i2c/busses/i2c-omap.c |    3 ++-
> >>  1 files changed, 2 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> >> index 445de08..9bcefae 100644
> >> --- a/drivers/i2c/busses/i2c-omap.c
> >> +++ b/drivers/i2c/busses/i2c-omap.c
> >> @@ -851,7 +851,8 @@ complete:
> >>                                       OMAP_I2C_STAT_AL)) {
> >>                       omap_i2c_ack_stat(dev, stat &
> >>                               (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
> >> -                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
> >> +                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR |
> >> +                             OMAP_I2C_STAT_ARDY));
> >>                       omap_i2c_complete_cmd(dev, err);
> >>                       return IRQ_HANDLED;
> >>               }
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Ben Dooks, ben-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org, http://www.fluff.org/ben/

Large Hadron Colada: A large Pina Colada that makes the universe disappear.

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

* Re: [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler
  2011-02-15 23:52           ` Ben Dooks
@ 2011-02-16  4:00             ` J, KEERTHY
  0 siblings, 0 replies; 7+ messages in thread
From: J, KEERTHY @ 2011-02-16  4:00 UTC (permalink / raw)
  To: Ben Dooks; +Cc: Kevin Hilman, linux-i2c, linux-omap, Richard woodruff

On Wed, Feb 16, 2011 at 5:22 AM, Ben Dooks <ben-i2c@fluff.org> wrote:
> On Tue, Feb 15, 2011 at 10:13:58AM +0530, J, KEERTHY wrote:
>> On Tue, Feb 15, 2011 at 5:35 AM, Kevin Hilman <khilman@ti.com> wrote:
>> > Keerthy <j-keerthy@ti.com> writes:
>> >
>> >> From: Richard woodruff <r-woodruff2@ti.com>
>> >>
>> >> ProDB00017052 - ARDY interrupt reasserted after being cleared.
>> >
>> >> This errata caused intermittent i2c instabilty(1 error per 3 hours) on several
>> >> customer platforms. After applying the workaround the intermittent errors were
>> >> not seen. This is not captured in the usual errata documents.
>> >
>> > This (presumably internal) ProDB number above is meaningless in the
>> > public changelog.  In lieu of a public erratum number, just summarize
>> > the erratum/instability seen, references to other relevant public
>> > errata (if any) would be useful too.   IOW, "instability" isn't quite
>> > accurate enough.  A more detailed description of the problem/instability
>> > is needed.
>> >
>>
>> Kevin,
>>
>> Yes the ProDB number is internal. I will remove it from the change log.
>> I will add a more detailed description of the problem.
>
> Leave it in a comment at the most, it might be useful, otherwise please
> respond to Kevin's review and then it'll be ready to merge.
>

Ben,

I will add a more detailed description.

-- 
Regards and Thanks,
Keerthy

>> --
>> Regards and Thanks,
>> Keerthy
>>
>>
>> > Thanks,
>> >
>> > Kevin
>> >
>> >>
>> >> The workaround is to have a double clear of ARDY status in
>> >> irq handler.
>> >>
>> >> Signed-off-by: Richard woodruff <r-woodruff2@ti.com>
>> >> Signed-off-by: Keerthy <j-keerthy@ti.com>
>> >> ---
>> >>  drivers/i2c/busses/i2c-omap.c |    3 ++-
>> >>  1 files changed, 2 insertions(+), 1 deletions(-)
>> >>
>> >> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
>> >> index 445de08..9bcefae 100644
>> >> --- a/drivers/i2c/busses/i2c-omap.c
>> >> +++ b/drivers/i2c/busses/i2c-omap.c
>> >> @@ -851,7 +851,8 @@ complete:
>> >>                                       OMAP_I2C_STAT_AL)) {
>> >>                       omap_i2c_ack_stat(dev, stat &
>> >>                               (OMAP_I2C_STAT_RRDY | OMAP_I2C_STAT_RDR |
>> >> -                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR));
>> >> +                             OMAP_I2C_STAT_XRDY | OMAP_I2C_STAT_XDR |
>> >> +                             OMAP_I2C_STAT_ARDY));
>> >>                       omap_i2c_complete_cmd(dev, err);
>> >>                       return IRQ_HANDLED;
>> >>               }
>> >
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
> --
> Ben Dooks, ben@fluff.org, http://www.fluff.org/ben/
>
> Large Hadron Colada: A large Pina Colada that makes the universe disappear.
>
>
--
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] 7+ messages in thread

end of thread, other threads:[~2011-02-16  4:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-11  6:45 [PATCH] i2c-omap: Double clear of ARDY status in IRQ handler Keerthy
     [not found] ` <1297406718-24147-1-git-send-email-j-keerthy-l0cyMroinI0@public.gmane.org>
2011-02-11 10:50   ` Jarkko Nikula
2011-02-14 10:01     ` J, KEERTHY
2011-02-15  0:05   ` Kevin Hilman
     [not found]     ` <877hd2xivn.fsf-l0cyMroinI0@public.gmane.org>
2011-02-15  4:43       ` J, KEERTHY
     [not found]         ` <AANLkTikdDsq0mku6Jakq-cxA3jYYHQ7CL0sjwJ6wzXNh-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-15 23:52           ` Ben Dooks
2011-02-16  4:00             ` J, KEERTHY

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