All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajendra Nayak <rnayak@ti.com>
To: t-kristo@ti.com
Cc: Paul Walmsley <paul@pwsan.com>,
	linux-omap@vger.kernel.org, khilman@ti.com,
	linux-arm-kernel@lists.infradead.org,
	Vishwanath BS <vishwanath.bs@ti.com>
Subject: Re: [PATCHv5 2/6] ARM: OMAP3 PM: Move IO Daisychain function to omap3 prm file
Date: Mon, 12 Mar 2012 15:45:21 +0530	[thread overview]
Message-ID: <4F5DCCB9.900@ti.com> (raw)
In-Reply-To: <1331543948.2116.259.camel@sokoban>

Hi Tero,

On Monday 12 March 2012 02:49 PM, Tero Kristo wrote:
>>> I see that you removed the second timeout test from this code, but not
>>> >  >  from the OMAP4 version.  Any reason why?  Seems like if the second timeout
>>> >  >  can be removed from one, then it can also be removed from the other?
>> >
>> >  Actually FWIK, its nteeded in both OMAP3 and OMAP4. The OMAP3
>> >  documentation does no mention about it. but that is just bad
>> >  documentation.
> Both documentation and actual functionality appears to be different for
> OMAP3 / OMAP4. The status bit on OMAP3 is read / write, and writing 1 to
> it clears it. On OMAP4, it is read only and both values 0 / 1 indicate
> something has happened. On OMAP3 the bit must be cleared by writing 1 to
> it, otherwise it remains high indefinitely and will break all the
> subsequent trigger calls. Also, clearing EN_IO_CHAIN on OMAP3 does not
> appear to trigger any activity that would change the status of
> ST_IO_CHAIN, so there is nothing to poll at the end.
>
> Here is a sample trace I just generated for the trigger on OMAP3:
>
> [    7.707824] omap3_trigger_io_chain(1): PM_WKST=00000000
> [    7.707855] omap3_trigger_io_chain(2): PM_WKST=00000000
> [    7.707855] omap3_trigger_io_chain(3): PM_WKST=00010000
> [    7.707885] omap3_trigger_io_chain(4): PM_WKST=00000000
> [    7.707977] omap3_trigger_io_chain(5): PM_WKST=00000000
>
> 1 = enter trigger function
> 2 = just after enabling io chain
> 3 = just after first poll loop
> 4 = just after clear of io status and disabling of io chain
> 5 = after udelay(100) from last event (you can see the status bit never
> raises)

Ok, I guess then the omap3 and omap4 implementations are indeed
different and should be handled differently. Thanks for the explanation.

regards,
Rajendra

>
> So, you can see that there is no change in the status bit between 4...5,
> so there is no point for polling anything there. I even tried changing
> the clear of IO status and disabling of IO chain to see if it had any
> impact on this result but no. The main point is that we must clear the
> status bit at #4, and thus polling for it to change at #5 makes no
> sense. We just need to force the register writes to PRCM by doing some
> access to the IP block.
>
>
> Looking at similar trace on omap4:
>
> [    8.097503] omap4_trigger_io_chain(1): IO=00010020
> [    8.097503] omap4_trigger_io_chain(2): IO=00010320
> [    8.097534] omap4_trigger_io_chain(3): IO=00010320
> [    8.097534] omap4_trigger_io_chain(4): IO=00010020
> [    8.097534] omap4_trigger_io_chain(5): IO=00010020
>
> 1 = enter function
> 2 = just after enabling WUCLK_CTRL
> 3 = just after poll
> 4 = just after disabling WUCLK_CTRL
> 5 = just after poll
>
> Well, the status bit follows the state of the WUCLK_CTRL, but there is
> no time to actually poll the registers it seems, their state has already
> changed when the value from first read arrives back as the register
> access itself is so slow. But... we are not manually clearing the status
> bit, thus polling kind of makes sense (and it might make more sense if
> some future version of PRCM would allow faster register access.)
>
> I also did both of these tests by caching the register values to memory
> (no immediate printks to avoid delays) but the results are still the
> same.
>


WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv5 2/6] ARM: OMAP3 PM: Move IO Daisychain function to omap3 prm file
Date: Mon, 12 Mar 2012 15:45:21 +0530	[thread overview]
Message-ID: <4F5DCCB9.900@ti.com> (raw)
In-Reply-To: <1331543948.2116.259.camel@sokoban>

Hi Tero,

On Monday 12 March 2012 02:49 PM, Tero Kristo wrote:
>>> I see that you removed the second timeout test from this code, but not
>>> >  >  from the OMAP4 version.  Any reason why?  Seems like if the second timeout
>>> >  >  can be removed from one, then it can also be removed from the other?
>> >
>> >  Actually FWIK, its nteeded in both OMAP3 and OMAP4. The OMAP3
>> >  documentation does no mention about it. but that is just bad
>> >  documentation.
> Both documentation and actual functionality appears to be different for
> OMAP3 / OMAP4. The status bit on OMAP3 is read / write, and writing 1 to
> it clears it. On OMAP4, it is read only and both values 0 / 1 indicate
> something has happened. On OMAP3 the bit must be cleared by writing 1 to
> it, otherwise it remains high indefinitely and will break all the
> subsequent trigger calls. Also, clearing EN_IO_CHAIN on OMAP3 does not
> appear to trigger any activity that would change the status of
> ST_IO_CHAIN, so there is nothing to poll at the end.
>
> Here is a sample trace I just generated for the trigger on OMAP3:
>
> [    7.707824] omap3_trigger_io_chain(1): PM_WKST=00000000
> [    7.707855] omap3_trigger_io_chain(2): PM_WKST=00000000
> [    7.707855] omap3_trigger_io_chain(3): PM_WKST=00010000
> [    7.707885] omap3_trigger_io_chain(4): PM_WKST=00000000
> [    7.707977] omap3_trigger_io_chain(5): PM_WKST=00000000
>
> 1 = enter trigger function
> 2 = just after enabling io chain
> 3 = just after first poll loop
> 4 = just after clear of io status and disabling of io chain
> 5 = after udelay(100) from last event (you can see the status bit never
> raises)

Ok, I guess then the omap3 and omap4 implementations are indeed
different and should be handled differently. Thanks for the explanation.

regards,
Rajendra

>
> So, you can see that there is no change in the status bit between 4...5,
> so there is no point for polling anything there. I even tried changing
> the clear of IO status and disabling of IO chain to see if it had any
> impact on this result but no. The main point is that we must clear the
> status bit at #4, and thus polling for it to change at #5 makes no
> sense. We just need to force the register writes to PRCM by doing some
> access to the IP block.
>
>
> Looking at similar trace on omap4:
>
> [    8.097503] omap4_trigger_io_chain(1): IO=00010020
> [    8.097503] omap4_trigger_io_chain(2): IO=00010320
> [    8.097534] omap4_trigger_io_chain(3): IO=00010320
> [    8.097534] omap4_trigger_io_chain(4): IO=00010020
> [    8.097534] omap4_trigger_io_chain(5): IO=00010020
>
> 1 = enter function
> 2 = just after enabling WUCLK_CTRL
> 3 = just after poll
> 4 = just after disabling WUCLK_CTRL
> 5 = just after poll
>
> Well, the status bit follows the state of the WUCLK_CTRL, but there is
> no time to actually poll the registers it seems, their state has already
> changed when the value from first read arrives back as the register
> access itself is so slow. But... we are not manually clearing the status
> bit, thus polling kind of makes sense (and it might make more sense if
> some future version of PRCM would allow faster register access.)
>
> I also did both of these tests by caching the register values to memory
> (no immediate printks to avoid delays) but the results are still the
> same.
>

  reply	other threads:[~2012-03-12 10:15 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-06 15:11 [PATCHv5 0/6] ARM: OMAP3+: IO daisy chain support fixes Tero Kristo
2012-03-06 15:11 ` Tero Kristo
2012-03-06 15:11 ` [PATCHv5 1/6] ARM: OMAP3 PM: correct enable/disable of daisy io chain Tero Kristo
2012-03-06 15:11   ` Tero Kristo
2012-03-10  3:48   ` Paul Walmsley
2012-03-10  3:48     ` Paul Walmsley
2012-03-06 15:11 ` [PATCHv5 2/6] ARM: OMAP3 PM: Move IO Daisychain function to omap3 prm file Tero Kristo
2012-03-06 15:11   ` Tero Kristo
2012-03-06 15:57   ` Nishanth Menon
2012-03-06 15:57     ` Nishanth Menon
2012-03-06 16:05     ` Tero Kristo
2012-03-06 16:05       ` Tero Kristo
2012-03-10  0:40   ` Paul Walmsley
2012-03-10  0:40     ` Paul Walmsley
2012-03-12  5:50     ` Rajendra Nayak
2012-03-12  5:50       ` Rajendra Nayak
2012-03-12  9:19       ` Tero Kristo
2012-03-12  9:19         ` Tero Kristo
2012-03-12 10:15         ` Rajendra Nayak [this message]
2012-03-12 10:15           ` Rajendra Nayak
2012-03-10  3:50   ` Paul Walmsley
2012-03-10  3:50     ` Paul Walmsley
2012-03-06 15:11 ` [PATCHv5 3/6] ARM: OMAP4 PM: Add IO Daisychain support Tero Kristo
2012-03-06 15:11   ` Tero Kristo
2012-03-10  3:59   ` Paul Walmsley
2012-03-10  3:59     ` Paul Walmsley
2012-03-12  5:52     ` Rajendra Nayak
2012-03-12  5:52       ` Rajendra Nayak
2012-03-12  6:10       ` Rajendra Nayak
2012-03-12  6:10         ` Rajendra Nayak
2012-03-12  6:51       ` Paul Walmsley
2012-03-12  6:51         ` Paul Walmsley
2012-03-06 15:11 ` [PATCHv5 4/6] ARM: OMAP3+: PRM: Enable IO wake up Tero Kristo
2012-03-06 15:11   ` Tero Kristo
2012-03-10  4:00   ` Paul Walmsley
2012-03-10  4:00     ` Paul Walmsley
2012-03-06 15:11 ` [PATCHv5 5/6] ARM: OMAP3PLUS PM: Add IO Daisychain support via hwmod mux Tero Kristo
2012-03-06 15:11   ` Tero Kristo
2012-03-10  4:01   ` Paul Walmsley
2012-03-10  4:01     ` Paul Walmsley
2012-06-22 11:45   ` Rajendra Nayak
2012-06-22 11:45     ` Rajendra Nayak
2012-06-22 18:39     ` Paul Walmsley
2012-06-22 18:39       ` Paul Walmsley
2012-03-06 15:11 ` [PATCHv5 6/6] ARM: OMAP3 PM: Remove IO Daisychain control from cpuidle Tero Kristo
2012-03-06 15:11   ` Tero Kristo
2012-03-10  4:02   ` Paul Walmsley
2012-03-10  4:02     ` Paul Walmsley
2012-03-10  4:05 ` [PATCHv5 0/6] ARM: OMAP3+: IO daisy chain support fixes Paul Walmsley
2012-03-10  4:05   ` Paul Walmsley
2012-03-12  5:53   ` Rajendra Nayak
2012-03-12  5:53     ` Rajendra Nayak
2012-03-12 10:00   ` Tero Kristo
2012-03-12 10:00     ` Tero Kristo
2012-03-12 10:13     ` Paul Walmsley
2012-03-12 10:13       ` Paul Walmsley
2012-03-10 21:29 ` Paul Walmsley
2012-03-10 21:29   ` Paul Walmsley
2012-03-12  5:55   ` Rajendra Nayak
2012-03-12  5:55     ` Rajendra Nayak

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=4F5DCCB9.900@ti.com \
    --to=rnayak@ti.com \
    --cc=khilman@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.com \
    --cc=t-kristo@ti.com \
    --cc=vishwanath.bs@ti.com \
    /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.