public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Todd Poynor <toddpoynor@google.com>
To: Benoit Cousson <b-cousson@ti.com>
Cc: paul@pwsan.com, rnayak@ti.com,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org
Subject: Re: [PATCH v3 04/13] OMAP: hwmod: Wait the idle status to be disabled
Date: Tue, 5 Jul 2011 11:21:44 -0700	[thread overview]
Message-ID: <20110705182144.GA10846@google.com> (raw)
In-Reply-To: <1309554558-19819-5-git-send-email-b-cousson@ti.com>

On Fri, Jul 01, 2011 at 11:09:09PM +0200, Benoit Cousson wrote:
> It is mandatory to wait for a module to be in disabled state before
> potentially disabling source clock or re-asserting a reset.
> 
> omap_hwmod_idle and omap_hwmod_shutdown does not wait for
> the module to be fully idle.
> 
> Add a cm_xxx accessor to wait the clkctrl idle status to be disabled.
> Fix hwmod_[idle|shutdown] to use this API.
...
> +int omap4_cm_wait_module_idle(u8 part, u16 inst, s16 cdoffs, u16 clkctrl_offs)

Technically this waits for a module slave to enter "full idle" --
"interface idle" not good enough, and if the module is also a master
its standby status could possibly be different... personally, these
details make my brain hurt, but thought I'd mention this in case
the naming of this interface should capture any of these distinctions.

> +{
> +	int i = 0;
> +
> +	if (!clkctrl_offs)
> +		return 0;
> +
> +	omap_test_timeout(
> +		_clkctrl_idlest(part, inst, cdoffs, clkctrl_offs) == 0x3,
> +		MAX_MODULE_READY_TIME, i);

The numeric constant may already have an equivalent symbol defined, or
suggest adding one.

>  /**
> + * _wait_target_disable - wait for a module to be disabled
> + * @oh: struct omap_hwmod *
> + *
> + * Wait for a module @oh to leave slave idle.  Returns 0 if the module
> + * does not have an IDLEST bit or if the module successfully leaves
> + * slave idle; otherwise, pass along the return value of the
> + * appropriate *_cm_wait_module_ready() function.

This paragraph probably c&p from a function with opposite meaning.

...
>  static int _idle(struct omap_hwmod *oh)
>  {
> +	int ret;
> +
>  	pr_debug("omap_hwmod: %s: idling\n", oh->name);
>  
>  	if (oh->_state != _HWMOD_STATE_ENABLED) {
> @@ -1351,6 +1383,10 @@ static int _idle(struct omap_hwmod *oh)
>  		_idle_sysc(oh);
>  	_del_initiator_dep(oh, mpu_oh);
>  	_disable_clocks(oh);
> +	ret = _wait_target_disable(oh);
> +	if (ret)
> +		pr_debug("omap_hwmod: %s: _wait_target_disable failed\n",
> +			   oh->name);

Should callers see an error function return in this case?


Todd

  reply	other threads:[~2011-07-05 18:21 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-01 21:09 [PATCH v3 00/13] OMAP4: Add modulemode support to hwmod framework Benoit Cousson
2011-07-01 21:09 ` [PATCH v3 01/13] OMAP4: hwmod data: Add clock domain attribute Benoit Cousson
2011-07-01 21:09 ` [PATCH v3 02/13] OMAP2+: hwmod: Init clkdm field at boot time Benoit Cousson
2011-07-01 21:09 ` [PATCH v3 03/13] OMAP4: hwmod: Replace CLKCTRL absolute address with offset macros Benoit Cousson
2011-07-07  8:25   ` Paul Walmsley
2011-07-07 18:27     ` Todd Poynor
2011-07-07 21:40       ` Paul Walmsley
2011-07-07 21:42       ` Paul Walmsley
2011-07-01 21:09 ` [PATCH v3 04/13] OMAP: hwmod: Wait the idle status to be disabled Benoit Cousson
2011-07-05 18:21   ` Todd Poynor [this message]
2011-07-07  8:10     ` Paul Walmsley
2011-07-01 21:09 ` [PATCH v3 05/13] OMAP2+: hwmod: Replace clkdm access from main_clk using hwmod attribute Benoit Cousson
2011-07-06 23:27   ` Paul Walmsley
2011-07-01 21:09 ` [PATCH v3 06/13] OMAP4: hwmod: Replace RSTCTRL absolute address with offset macros Benoit Cousson
2011-07-07  8:28   ` Paul Walmsley
2011-07-01 21:09 ` [PATCH v3 07/13] OMAP4: prm: Replace warm reset API with the offset based version Benoit Cousson
2011-07-01 21:09 ` [PATCH v3 08/13] OMAP4: prm: Remove deprecated functions Benoit Cousson
2011-07-01 21:09 ` [PATCH v3 09/13] OMAP4: hwmod data: Align interconnect format with regular modules Benoit Cousson
2011-07-06 22:42   ` Paul Walmsley
2011-07-01 21:09 ` [PATCH v3 10/13] OMAP4: hwmod data: Add PRM context register offset Benoit Cousson
2011-07-01 21:09 ` [PATCH v3 11/13] OMAP4: hwmod data: Add modulemode entry in omap_hwmod structure Benoit Cousson
2011-07-01 21:09 ` [PATCH v3 12/13] OMAP4: cm: Add two new APIs for modulemode control Benoit Cousson
2011-07-07  8:32   ` Paul Walmsley
2011-07-01 21:09 ` [PATCH v3 13/13] OMAP4: hwmod: Introduce the module control in hwmod control Benoit Cousson
2011-07-07  8:17 ` [PATCH v3 00/13] OMAP4: Add modulemode support to hwmod framework Paul Walmsley

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=20110705182144.GA10846@google.com \
    --to=toddpoynor@google.com \
    --cc=b-cousson@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.com \
    --cc=rnayak@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox