linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders
@ 2013-02-04 12:24 Rajendra Nayak
  2013-02-06 23:44 ` Paul Walmsley
  0 siblings, 1 reply; 3+ messages in thread
From: Rajendra Nayak @ 2013-02-04 12:24 UTC (permalink / raw)
  To: linux-arm-kernel

OMAP4 CHIP level PM works only with newer bootloaders. The
dependency on the bootloader comes from the fact that the
kernel is missing reset and initialization code for some
devices.

While the right thing to do is to add reset and init code in
the kernel, for some co-processor IP blocks like DSP and IVA
it means downloading firmware into each one of them to execute
idle instructions.

While a feasible solution is worked upon on how such IP blocks
can be better handled in the kernel, in the interim, to avoid
any further frustration to users testing PM on OMAP4 and finding
it broken, warn them about the bootloader being a possible
cause.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: R Sricharan <r.sricharan@ti.com>
---
 arch/arm/mach-omap2/pm44xx.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index aa6fd98..45ca053 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -77,8 +77,18 @@ static int omap4_pm_suspend(void)
 		omap_set_pwrdm_state(pwrst->pwrdm, pwrst->saved_state);
 		pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->saved_logic_state);
 	}
-	if (ret)
+	if (ret) {
 		pr_crit("Could not enter target state in pm_suspend\n");
+		/*
+		 * OMAP4 chip PM currently works only with certain (newer)
+		 * versions of bootloaders. This is due to missing code in the
+		 * kernel to properly reset and initialize some devices.
+		 * Warn the user about the bootloader version being one of the
+		 * possible causes.
+		 */
+		pr_warn("One of the possible cause could be an old bootloder\n"
+			"Use version v2012.07 (or later)\n");
+	}
 	else
 		pr_info("Successfully put all powerdomains to target state\n");
 
@@ -146,6 +156,12 @@ int __init omap4_pm_init(void)
 	}
 
 	pr_err("Power Management for TI OMAP4.\n");
+	/*
+	 * OMAP4 chip PM currently works only with certain (newer)
+	 * versions of bootloaders. This is due to missing code in the
+	 * kernel to properly reset and initialize some devices.
+	 */
+	pr_warn("Use Bootloader version v2012.07 (or later) for full PM support\n");
 
 	ret = pwrdm_for_each(pwrdms_setup, NULL);
 	if (ret) {
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders
  2013-02-04 12:24 [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders Rajendra Nayak
@ 2013-02-06 23:44 ` Paul Walmsley
  2013-02-08  1:29   ` Kevin Hilman
  0 siblings, 1 reply; 3+ messages in thread
From: Paul Walmsley @ 2013-02-06 23:44 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 4 Feb 2013, Rajendra Nayak wrote:

> OMAP4 CHIP level PM works only with newer bootloaders. The
> dependency on the bootloader comes from the fact that the
> kernel is missing reset and initialization code for some
> devices.
> 
> While the right thing to do is to add reset and init code in
> the kernel, for some co-processor IP blocks like DSP and IVA
> it means downloading firmware into each one of them to execute
> idle instructions.
> 
> While a feasible solution is worked upon on how such IP blocks
> can be better handled in the kernel, in the interim, to avoid
> any further frustration to users testing PM on OMAP4 and finding
> it broken, warn them about the bootloader being a possible
> cause.
> 
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
> Cc: Tero Kristo <t-kristo@ti.com>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Cc: R Sricharan <r.sricharan@ti.com>

Thanks Rajendra, I appreciate the patch.  I've tweaked it slightly and the 
following is what's queued here; hopefully it can go in for v3.9.


- Paul

From: Rajendra Nayak <rnayak@ti.com>
Date: Mon, 4 Feb 2013 17:54:43 +0530
Subject: [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders

OMAP4 CHIP level PM works only with newer bootloaders. The
dependency on the bootloader comes from the fact that the
kernel is missing reset and initialization code for some
devices.

While the right thing to do is to add reset and init code in
the kernel, for some co-processor IP blocks like DSP and IVA
it means downloading firmware into each one of them to execute
idle instructions.

While a feasible solution is worked upon on how such IP blocks
can be better handled in the kernel, in the interim, to avoid
any further frustration to users testing PM on OMAP4 and finding
it broken, warn them about the bootloader being a possible
cause.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: R Sricharan <r.sricharan@ti.com>
[paul at pwsan.com: tweaked warning messages and comments slightly]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/pm44xx.c |   19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index aa6fd98..502ed9b 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -77,8 +77,18 @@ static int omap4_pm_suspend(void)
 		omap_set_pwrdm_state(pwrst->pwrdm, pwrst->saved_state);
 		pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->saved_logic_state);
 	}
-	if (ret)
+	if (ret) {
 		pr_crit("Could not enter target state in pm_suspend\n");
+		/*
+		 * OMAP4 chip PM currently works only with certain (newer)
+		 * versions of bootloaders. This is due to missing code in the
+		 * kernel to properly reset and initialize some devices.
+		 * Warn the user about the bootloader version being one of the
+		 * possible causes.
+		 * http://www.spinics.net/lists/arm-kernel/msg218641.html
+		 */
+		pr_warn("A possible cause could be an old bootloader - try u-boot >= v2012.07\n");
+	}
 	else
 		pr_info("Successfully put all powerdomains to target state\n");
 
@@ -146,6 +156,13 @@ int __init omap4_pm_init(void)
 	}
 
 	pr_err("Power Management for TI OMAP4.\n");
+	/*
+	 * OMAP4 chip PM currently works only with certain (newer)
+	 * versions of bootloaders. This is due to missing code in the
+	 * kernel to properly reset and initialize some devices.
+	 * http://www.spinics.net/lists/arm-kernel/msg218641.html
+	 */
+	pr_warn("u-boot >= v2012.07 is required for full PM support\n");
 
 	ret = pwrdm_for_each(pwrdms_setup, NULL);
 	if (ret) {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders
  2013-02-06 23:44 ` Paul Walmsley
@ 2013-02-08  1:29   ` Kevin Hilman
  0 siblings, 0 replies; 3+ messages in thread
From: Kevin Hilman @ 2013-02-08  1:29 UTC (permalink / raw)
  To: linux-arm-kernel

Paul Walmsley <paul@pwsan.com> writes:

> On Mon, 4 Feb 2013, Rajendra Nayak wrote:
>
>> OMAP4 CHIP level PM works only with newer bootloaders. The
>> dependency on the bootloader comes from the fact that the
>> kernel is missing reset and initialization code for some
>> devices.
>> 
>> While the right thing to do is to add reset and init code in
>> the kernel, for some co-processor IP blocks like DSP and IVA
>> it means downloading firmware into each one of them to execute
>> idle instructions.
>> 
>> While a feasible solution is worked upon on how such IP blocks
>> can be better handled in the kernel, in the interim, to avoid
>> any further frustration to users testing PM on OMAP4 and finding
>> it broken, warn them about the bootloader being a possible
>> cause.
>> 
>> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
>> Cc: Tero Kristo <t-kristo@ti.com>
>> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> Cc: R Sricharan <r.sricharan@ti.com>
>
> Thanks Rajendra, I appreciate the patch.  I've tweaked it slightly and the 
> following is what's queued here; hopefully it can go in for v3.9.
>
>
> - Paul
>
> From: Rajendra Nayak <rnayak@ti.com>
> Date: Mon, 4 Feb 2013 17:54:43 +0530
> Subject: [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders
>
> OMAP4 CHIP level PM works only with newer bootloaders. The
> dependency on the bootloader comes from the fact that the
> kernel is missing reset and initialization code for some
> devices.
>
> While the right thing to do is to add reset and init code in
> the kernel, for some co-processor IP blocks like DSP and IVA
> it means downloading firmware into each one of them to execute
> idle instructions.
>
> While a feasible solution is worked upon on how such IP blocks
> can be better handled in the kernel, in the interim, to avoid
> any further frustration to users testing PM on OMAP4 and finding
> it broken, warn them about the bootloader being a possible
> cause.
>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
> Cc: Tero Kristo <t-kristo@ti.com>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Cc: R Sricharan <r.sricharan@ti.com>
> [paul at pwsan.com: tweaked warning messages and comments slightly]
> Signed-off-by: Paul Walmsley <paul@pwsan.com>

FWIW

Acked-by: Kevin Hilman <khilman@linaro.org>

> ---
>  arch/arm/mach-omap2/pm44xx.c |   19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
> index aa6fd98..502ed9b 100644
> --- a/arch/arm/mach-omap2/pm44xx.c
> +++ b/arch/arm/mach-omap2/pm44xx.c
> @@ -77,8 +77,18 @@ static int omap4_pm_suspend(void)
>  		omap_set_pwrdm_state(pwrst->pwrdm, pwrst->saved_state);
>  		pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->saved_logic_state);
>  	}
> -	if (ret)
> +	if (ret) {
>  		pr_crit("Could not enter target state in pm_suspend\n");
> +		/*
> +		 * OMAP4 chip PM currently works only with certain (newer)
> +		 * versions of bootloaders. This is due to missing code in the
> +		 * kernel to properly reset and initialize some devices.
> +		 * Warn the user about the bootloader version being one of the
> +		 * possible causes.
> +		 * http://www.spinics.net/lists/arm-kernel/msg218641.html
> +		 */
> +		pr_warn("A possible cause could be an old bootloader - try u-boot >= v2012.07\n");
> +	}
>  	else
>  		pr_info("Successfully put all powerdomains to target state\n");
>  
> @@ -146,6 +156,13 @@ int __init omap4_pm_init(void)
>  	}
>  
>  	pr_err("Power Management for TI OMAP4.\n");
> +	/*
> +	 * OMAP4 chip PM currently works only with certain (newer)
> +	 * versions of bootloaders. This is due to missing code in the
> +	 * kernel to properly reset and initialize some devices.
> +	 * http://www.spinics.net/lists/arm-kernel/msg218641.html
> +	 */
> +	pr_warn("u-boot >= v2012.07 is required for full PM support\n");
>  
>  	ret = pwrdm_for_each(pwrdms_setup, NULL);
>  	if (ret) {

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-02-08  1:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-04 12:24 [PATCH] ARM: OMAP4: PM: Warn users about usage of older bootloaders Rajendra Nayak
2013-02-06 23:44 ` Paul Walmsley
2013-02-08  1:29   ` Kevin Hilman

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).