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.
>
next prev parent reply other threads:[~2012-03-12 10:15 UTC|newest]
Thread overview: 30+ 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 ` [PATCHv5 1/6] ARM: OMAP3 PM: correct enable/disable of daisy io chain Tero Kristo
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:57 ` Nishanth Menon
2012-03-06 16:05 ` Tero Kristo
2012-03-10 0:40 ` Paul Walmsley
2012-03-12 5:50 ` Rajendra Nayak
2012-03-12 9:19 ` Tero Kristo
2012-03-12 10:15 ` Rajendra Nayak [this message]
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-10 3:59 ` Paul Walmsley
2012-03-12 5:52 ` Rajendra Nayak
2012-03-12 6:10 ` Rajendra Nayak
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-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-10 4:01 ` Paul Walmsley
2012-06-22 11:45 ` Rajendra Nayak
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-10 4:02 ` Paul Walmsley
2012-03-10 4:05 ` [PATCHv5 0/6] ARM: OMAP3+: IO daisy chain support fixes Paul Walmsley
2012-03-12 5:53 ` Rajendra Nayak
2012-03-12 10:00 ` Tero Kristo
2012-03-12 10:13 ` Paul Walmsley
2012-03-10 21:29 ` Paul Walmsley
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=linux-arm-kernel@lists.infradead.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).