All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@ti.com>
To: Tero Kristo <t-kristo@ti.com>
Cc: linux-omap@vger.kernel.org, paul@pwsan.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCHv5 6/8] ARM: OMAP4: pwrdm: add support for reading prev logic and mem states
Date: Tue, 15 May 2012 15:36:58 -0700	[thread overview]
Message-ID: <87havhax6d.fsf@ti.com> (raw)
In-Reply-To: <1336989796-26594-7-git-send-email-t-kristo@ti.com> (Tero Kristo's message of "Mon, 14 May 2012 13:03:14 +0300")

Tero Kristo <t-kristo@ti.com> writes:

> On OMAP4, there is no support to read previous logic state
> or previous memory state achieved when a power domain transitions
> to RET. Instead there are module level context registers.
>
> In order to support the powerdomain level logic/mem_off_counters
> on OMAP4, instead use the previous power state achieved (RET) and
> the *programmed* logic/mem RET state to derive if a powerdomain lost
> logic or did not.
>
> If the powerdomain is programmed to enter RET state and lose logic
> in RET state, knowing that the powerdomain entered RET is good enough
> to derive that the logic was lost as well, in such cases.
>
> Signed-off-by: Tero Kristo <t-kristo@ti.com>

Looks OK, but these new functions need some kerneldoc to describe the
decision making.

Kevin

> ---
>  arch/arm/mach-omap2/powerdomain44xx.c |   32 ++++++++++++++++++++++++++++++++
>  1 files changed, 32 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/powerdomain44xx.c b/arch/arm/mach-omap2/powerdomain44xx.c
> index 601325b..ab00736 100644
> --- a/arch/arm/mach-omap2/powerdomain44xx.c
> +++ b/arch/arm/mach-omap2/powerdomain44xx.c
> @@ -151,6 +151,21 @@ static int omap4_pwrdm_read_logic_retst(struct powerdomain *pwrdm)
>  	return v;
>  }
>  
> +static int omap4_pwrdm_read_prev_logic_pwrst(struct powerdomain *pwrdm)
> +{
> +	int state;
> +
> +	state = omap4_pwrdm_read_prev_pwrst(pwrdm);
> +
> +	if (state == PWRDM_POWER_OFF)
> +		return PWRDM_POWER_OFF;
> +
> +	if (state != PWRDM_POWER_RET)
> +		return PWRDM_POWER_ON;
> +
> +	return omap4_pwrdm_read_logic_retst(pwrdm);
> +}
> +
>  static int omap4_pwrdm_read_mem_pwrst(struct powerdomain *pwrdm, u8 bank)
>  {
>  	u32 m, v;
> @@ -179,6 +194,21 @@ static int omap4_pwrdm_read_mem_retst(struct powerdomain *pwrdm, u8 bank)
>  	return v;
>  }
>  
> +static int omap4_pwrdm_read_prev_mem_pwrst(struct powerdomain *pwrdm, u8 bank)
> +{
> +	int state;
> +
> +	state = omap4_pwrdm_read_prev_pwrst(pwrdm);
> +
> +	if (state == PWRDM_POWER_OFF)
> +		return PWRDM_POWER_OFF;
> +
> +	if (state != PWRDM_POWER_RET)
> +		return PWRDM_POWER_ON;
> +
> +	return omap4_pwrdm_read_mem_retst(pwrdm, bank);
> +}
> +
>  static int omap4_pwrdm_wait_transition(struct powerdomain *pwrdm)
>  {
>  	u32 c = 0;
> @@ -217,9 +247,11 @@ struct pwrdm_ops omap4_pwrdm_operations = {
>  	.pwrdm_clear_all_prev_pwrst	= omap4_pwrdm_clear_all_prev_pwrst,
>  	.pwrdm_set_logic_retst	= omap4_pwrdm_set_logic_retst,
>  	.pwrdm_read_logic_pwrst	= omap4_pwrdm_read_logic_pwrst,
> +	.pwrdm_read_prev_logic_pwrst	= omap4_pwrdm_read_prev_logic_pwrst,
>  	.pwrdm_read_logic_retst	= omap4_pwrdm_read_logic_retst,
>  	.pwrdm_read_mem_pwrst	= omap4_pwrdm_read_mem_pwrst,
>  	.pwrdm_read_mem_retst	= omap4_pwrdm_read_mem_retst,
> +	.pwrdm_read_prev_mem_pwrst	= omap4_pwrdm_read_prev_mem_pwrst,
>  	.pwrdm_set_mem_onst	= omap4_pwrdm_set_mem_onst,
>  	.pwrdm_set_mem_retst	= omap4_pwrdm_set_mem_retst,
>  	.pwrdm_wait_transition	= omap4_pwrdm_wait_transition,

WARNING: multiple messages have this Message-ID (diff)
From: khilman@ti.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv5 6/8] ARM: OMAP4: pwrdm: add support for reading prev logic and mem states
Date: Tue, 15 May 2012 15:36:58 -0700	[thread overview]
Message-ID: <87havhax6d.fsf@ti.com> (raw)
In-Reply-To: <1336989796-26594-7-git-send-email-t-kristo@ti.com> (Tero Kristo's message of "Mon, 14 May 2012 13:03:14 +0300")

Tero Kristo <t-kristo@ti.com> writes:

> On OMAP4, there is no support to read previous logic state
> or previous memory state achieved when a power domain transitions
> to RET. Instead there are module level context registers.
>
> In order to support the powerdomain level logic/mem_off_counters
> on OMAP4, instead use the previous power state achieved (RET) and
> the *programmed* logic/mem RET state to derive if a powerdomain lost
> logic or did not.
>
> If the powerdomain is programmed to enter RET state and lose logic
> in RET state, knowing that the powerdomain entered RET is good enough
> to derive that the logic was lost as well, in such cases.
>
> Signed-off-by: Tero Kristo <t-kristo@ti.com>

Looks OK, but these new functions need some kerneldoc to describe the
decision making.

Kevin

> ---
>  arch/arm/mach-omap2/powerdomain44xx.c |   32 ++++++++++++++++++++++++++++++++
>  1 files changed, 32 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/powerdomain44xx.c b/arch/arm/mach-omap2/powerdomain44xx.c
> index 601325b..ab00736 100644
> --- a/arch/arm/mach-omap2/powerdomain44xx.c
> +++ b/arch/arm/mach-omap2/powerdomain44xx.c
> @@ -151,6 +151,21 @@ static int omap4_pwrdm_read_logic_retst(struct powerdomain *pwrdm)
>  	return v;
>  }
>  
> +static int omap4_pwrdm_read_prev_logic_pwrst(struct powerdomain *pwrdm)
> +{
> +	int state;
> +
> +	state = omap4_pwrdm_read_prev_pwrst(pwrdm);
> +
> +	if (state == PWRDM_POWER_OFF)
> +		return PWRDM_POWER_OFF;
> +
> +	if (state != PWRDM_POWER_RET)
> +		return PWRDM_POWER_ON;
> +
> +	return omap4_pwrdm_read_logic_retst(pwrdm);
> +}
> +
>  static int omap4_pwrdm_read_mem_pwrst(struct powerdomain *pwrdm, u8 bank)
>  {
>  	u32 m, v;
> @@ -179,6 +194,21 @@ static int omap4_pwrdm_read_mem_retst(struct powerdomain *pwrdm, u8 bank)
>  	return v;
>  }
>  
> +static int omap4_pwrdm_read_prev_mem_pwrst(struct powerdomain *pwrdm, u8 bank)
> +{
> +	int state;
> +
> +	state = omap4_pwrdm_read_prev_pwrst(pwrdm);
> +
> +	if (state == PWRDM_POWER_OFF)
> +		return PWRDM_POWER_OFF;
> +
> +	if (state != PWRDM_POWER_RET)
> +		return PWRDM_POWER_ON;
> +
> +	return omap4_pwrdm_read_mem_retst(pwrdm, bank);
> +}
> +
>  static int omap4_pwrdm_wait_transition(struct powerdomain *pwrdm)
>  {
>  	u32 c = 0;
> @@ -217,9 +247,11 @@ struct pwrdm_ops omap4_pwrdm_operations = {
>  	.pwrdm_clear_all_prev_pwrst	= omap4_pwrdm_clear_all_prev_pwrst,
>  	.pwrdm_set_logic_retst	= omap4_pwrdm_set_logic_retst,
>  	.pwrdm_read_logic_pwrst	= omap4_pwrdm_read_logic_pwrst,
> +	.pwrdm_read_prev_logic_pwrst	= omap4_pwrdm_read_prev_logic_pwrst,
>  	.pwrdm_read_logic_retst	= omap4_pwrdm_read_logic_retst,
>  	.pwrdm_read_mem_pwrst	= omap4_pwrdm_read_mem_pwrst,
>  	.pwrdm_read_mem_retst	= omap4_pwrdm_read_mem_retst,
> +	.pwrdm_read_prev_mem_pwrst	= omap4_pwrdm_read_prev_mem_pwrst,
>  	.pwrdm_set_mem_onst	= omap4_pwrdm_set_mem_onst,
>  	.pwrdm_set_mem_retst	= omap4_pwrdm_set_mem_retst,
>  	.pwrdm_wait_transition	= omap4_pwrdm_wait_transition,

  reply	other threads:[~2012-05-15 22:36 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-14 10:03 [PATCHv5 0/8] ARM: OMAP4: core retention support Tero Kristo
2012-05-14 10:03 ` Tero Kristo
2012-05-14 10:03 ` [PATCHv5 1/8] ARM: OMAP4: suspend: Program all domains to retention Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-15 19:52   ` Kevin Hilman
2012-05-15 19:52     ` Kevin Hilman
2012-05-16  8:37     ` Tero Kristo
2012-05-16  8:37       ` Tero Kristo
2012-05-14 10:03 ` [PATCHv5 2/8] TEMP: ARM: OMAP4: hwmod_data: Do not get DSP out of reset at boot time Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-14 10:03 ` [PATCHv5 3/8] ARM: OMAP4460: Workaround for ROM bug because of CA9 r2pX gic control register change Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-15 21:44   ` Kevin Hilman
2012-05-15 21:44     ` Kevin Hilman
2012-05-16  8:54     ` Tero Kristo
2012-05-16  8:54       ` Tero Kristo
2012-05-16  9:16     ` Santosh Shilimkar
2012-05-16  9:16       ` Santosh Shilimkar
2012-05-16 12:23       ` Santosh Shilimkar
2012-05-16 12:23         ` Santosh Shilimkar
2012-05-16 16:51         ` Kevin Hilman
2012-05-16 16:51           ` Kevin Hilman
2012-05-17  6:46           ` Shilimkar, Santosh
2012-05-17  6:46             ` Shilimkar, Santosh
2012-05-17 17:15             ` Kevin Hilman
2012-05-17 17:15               ` Kevin Hilman
2012-05-18  6:05               ` Shilimkar, Santosh
2012-05-18  6:05                 ` Shilimkar, Santosh
2012-05-18 14:13                 ` Kevin Hilman
2012-05-18 14:13                   ` Kevin Hilman
2012-05-16 12:31   ` Santosh Shilimkar
2012-05-16 12:31     ` Santosh Shilimkar
2012-05-14 10:03 ` [PATCHv5 4/8] ARM: OMAP4: hwmod: flag hwmods/modules supporting module level context status Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-14 10:03 ` [PATCHv5 5/8] ARM: OMAP: hwmod: Add support for per hwmod/module context lost count Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-29 19:32   ` Menon, Nishanth
2012-05-29 19:32     ` Menon, Nishanth
2012-05-30  8:02     ` Tero Kristo
2012-05-30  8:02       ` Tero Kristo
2012-05-14 10:03 ` [PATCHv5 6/8] ARM: OMAP4: pwrdm: add support for reading prev logic and mem states Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-15 22:36   ` Kevin Hilman [this message]
2012-05-15 22:36     ` Kevin Hilman
2012-05-16  8:55     ` Tero Kristo
2012-05-16  8:55       ` Tero Kristo
2012-05-14 10:03 ` [PATCHv5 7/8] ARM: OMAP4: PM: Add next_logic_state param to power_state Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-14 10:03 ` [PATCHv5 8/8] ARM: OMAP4: PM: Added option for enabling OSWR Tero Kristo
2012-05-14 10:03   ` Tero Kristo
2012-05-15 22:41   ` Kevin Hilman
2012-05-15 22:41     ` Kevin Hilman
2012-05-16  9:10     ` Tero Kristo
2012-05-16  9:10       ` Tero Kristo
2012-05-16 18:03       ` Kevin Hilman
2012-05-16 18:03         ` 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=87havhax6d.fsf@ti.com \
    --to=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 \
    /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.