All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@ti.com>
To: Jon Hunter <jon-hunter@ti.com>, Paul Walmsley <paul@pwsan.com>
Cc: linux-omap <linux-omap@vger.kernel.org>,
	linux-arm <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH RESEND] ARM: OMAP2+: Fix Wake-up power domain power status
Date: Mon, 02 Jul 2012 10:52:32 -0700	[thread overview]
Message-ID: <87k3ym6of3.fsf@ti.com> (raw)
In-Reply-To: <1341003892-14424-1-git-send-email-jon-hunter@ti.com> (Jon Hunter's message of "Fri, 29 Jun 2012 16:04:52 -0500")

Jon Hunter <jon-hunter@ti.com> writes:

> Note: Re-sending with updated kernel doc.
>
> The wake-up power domain is an alway-on power domain and so this power domain
> does not have a power state status (PM_PWSTST_xxx) register that indicates the
> current state. However, during the registering of the wake-up power domain the
> state of the domain is queried by calling pwrdm_read_pwrst(). This actually
> tries to read a register that does not exist and returns a value of 0 that
> indicates that the current state is OFF. The OFF state count of the wake-up
> power domain is then set to 1 and the current state to OFF. Both of which are
> incorrect.
>
> To fix this, if a power domain only supports the ON state, do not attempt to
> read the power state status register and simply return ON as the current power
> state.
>
> This is based upon Tony's current linux-omap master branch.
>
> Testing:
> - Boot tested on OMAP4460 panda.
> - Boot tested on OMAP3430 beagle and validated CORE RET still working (using
>   Paul's 32k timer patch [1]).
>
> [1] http://marc.info/?l=linux-omap&m=134000053229888&w=2
>
> Signed-off-by: Jon Hunter <jon-hunter@ti.com>

Acked-by: Kevin Hilman <khilman@ti.com>


> ---
>  arch/arm/mach-omap2/powerdomain.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
> index eefe179..69b36e1 100644
> --- a/arch/arm/mach-omap2/powerdomain.c
> +++ b/arch/arm/mach-omap2/powerdomain.c
> @@ -526,7 +526,8 @@ int pwrdm_read_next_pwrst(struct powerdomain *pwrdm)
>   *
>   * Return the powerdomain @pwrdm's current power state.	Returns -EINVAL
>   * if the powerdomain pointer is null or returns the current power state
> - * upon success.
> + * upon success. Note that if the power domain only supports the ON state
> + * then just return ON as the current state.
>   */
>  int pwrdm_read_pwrst(struct powerdomain *pwrdm)
>  {
> @@ -535,6 +536,9 @@ int pwrdm_read_pwrst(struct powerdomain *pwrdm)
>  	if (!pwrdm)
>  		return -EINVAL;
>  
> +	if (pwrdm->pwrsts == PWRSTS_ON)
> +		return PWRDM_POWER_ON;
> +
>  	if (arch_pwrdm && arch_pwrdm->pwrdm_read_pwrst)
>  		ret = arch_pwrdm->pwrdm_read_pwrst(pwrdm);

WARNING: multiple messages have this Message-ID (diff)
From: khilman@ti.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RESEND] ARM: OMAP2+: Fix Wake-up power domain power status
Date: Mon, 02 Jul 2012 10:52:32 -0700	[thread overview]
Message-ID: <87k3ym6of3.fsf@ti.com> (raw)
In-Reply-To: <1341003892-14424-1-git-send-email-jon-hunter@ti.com> (Jon Hunter's message of "Fri, 29 Jun 2012 16:04:52 -0500")

Jon Hunter <jon-hunter@ti.com> writes:

> Note: Re-sending with updated kernel doc.
>
> The wake-up power domain is an alway-on power domain and so this power domain
> does not have a power state status (PM_PWSTST_xxx) register that indicates the
> current state. However, during the registering of the wake-up power domain the
> state of the domain is queried by calling pwrdm_read_pwrst(). This actually
> tries to read a register that does not exist and returns a value of 0 that
> indicates that the current state is OFF. The OFF state count of the wake-up
> power domain is then set to 1 and the current state to OFF. Both of which are
> incorrect.
>
> To fix this, if a power domain only supports the ON state, do not attempt to
> read the power state status register and simply return ON as the current power
> state.
>
> This is based upon Tony's current linux-omap master branch.
>
> Testing:
> - Boot tested on OMAP4460 panda.
> - Boot tested on OMAP3430 beagle and validated CORE RET still working (using
>   Paul's 32k timer patch [1]).
>
> [1] http://marc.info/?l=linux-omap&m=134000053229888&w=2
>
> Signed-off-by: Jon Hunter <jon-hunter@ti.com>

Acked-by: Kevin Hilman <khilman@ti.com>


> ---
>  arch/arm/mach-omap2/powerdomain.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
> index eefe179..69b36e1 100644
> --- a/arch/arm/mach-omap2/powerdomain.c
> +++ b/arch/arm/mach-omap2/powerdomain.c
> @@ -526,7 +526,8 @@ int pwrdm_read_next_pwrst(struct powerdomain *pwrdm)
>   *
>   * Return the powerdomain @pwrdm's current power state.	Returns -EINVAL
>   * if the powerdomain pointer is null or returns the current power state
> - * upon success.
> + * upon success. Note that if the power domain only supports the ON state
> + * then just return ON as the current state.
>   */
>  int pwrdm_read_pwrst(struct powerdomain *pwrdm)
>  {
> @@ -535,6 +536,9 @@ int pwrdm_read_pwrst(struct powerdomain *pwrdm)
>  	if (!pwrdm)
>  		return -EINVAL;
>  
> +	if (pwrdm->pwrsts == PWRSTS_ON)
> +		return PWRDM_POWER_ON;
> +
>  	if (arch_pwrdm && arch_pwrdm->pwrdm_read_pwrst)
>  		ret = arch_pwrdm->pwrdm_read_pwrst(pwrdm);

  parent reply	other threads:[~2012-07-02 17:52 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-29 21:04 [PATCH RESEND] ARM: OMAP2+: Fix Wake-up power domain power status Jon Hunter
2012-06-29 21:04 ` Jon Hunter
2012-06-30  4:27 ` Shilimkar, Santosh
2012-06-30  4:27   ` Shilimkar, Santosh
2012-07-02 16:17   ` Jon Hunter
2012-07-02 16:17     ` Jon Hunter
2012-07-03  6:30     ` Shilimkar, Santosh
2012-07-03  6:30       ` Shilimkar, Santosh
2012-07-04 15:38       ` Paul Walmsley
2012-07-04 15:38         ` Paul Walmsley
2012-07-02 17:52 ` Kevin Hilman [this message]
2012-07-02 17:52   ` Kevin Hilman

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=87k3ym6of3.fsf@ti.com \
    --to=khilman@ti.com \
    --cc=jon-hunter@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.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.