diff options
| author | Paul Walmsley <paul@pwsan.com> | 2013-02-10 13:27:02 -0500 |
|---|---|---|
| committer | Paul Walmsley <paul@pwsan.com> | 2013-02-10 13:27:02 -0500 |
| commit | a5a8c31d9f7587b601ecf0106c8abeabe3da24c3 (patch) | |
| tree | 9de75a8020d78fc210f82451414bc0a09f6fa228 | |
| parent | 5cebb23c6cbcfcae1d0586d07898677716f133bc (diff) | |
| parent | cd19010c03cc9cce2366d5065720a3ab546833dd (diff) | |
Merge branches 'sg_aess_reset_devel_3.9' and 'omap4_pm_fixes_a_3.9' into omap4_prcm_devel_a_3.9
| -rw-r--r-- | arch/arm/mach-omap2/pm.c | 20 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/pm44xx.c | 21 |
2 files changed, 29 insertions, 12 deletions
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index f4b3143a8b1d..1ec429964b7f 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c | |||
| @@ -345,19 +345,19 @@ int __init omap2_common_pm_late_init(void) | |||
| 345 | * a completely different mechanism. | 345 | * a completely different mechanism. |
| 346 | * Disable this part if a DT blob is available. | 346 | * Disable this part if a DT blob is available. |
| 347 | */ | 347 | */ |
| 348 | if (of_have_populated_dt()) | 348 | if (!of_have_populated_dt()) { |
| 349 | return 0; | ||
| 350 | 349 | ||
| 351 | /* Init the voltage layer */ | 350 | /* Init the voltage layer */ |
| 352 | omap_pmic_late_init(); | 351 | omap_pmic_late_init(); |
| 353 | omap_voltage_late_init(); | 352 | omap_voltage_late_init(); |
| 354 | 353 | ||
| 355 | /* Initialize the voltages */ | 354 | /* Initialize the voltages */ |
| 356 | omap3_init_voltages(); | 355 | omap3_init_voltages(); |
| 357 | omap4_init_voltages(); | 356 | omap4_init_voltages(); |
| 358 | 357 | ||
| 359 | /* Smartreflex device init */ | 358 | /* Smartreflex device init */ |
| 360 | omap_devinit_smartreflex(); | 359 | omap_devinit_smartreflex(); |
| 360 | } | ||
| 361 | 361 | ||
| 362 | #ifdef CONFIG_SUSPEND | 362 | #ifdef CONFIG_SUSPEND |
| 363 | suspend_set_ops(&omap_pm_ops); | 363 | suspend_set_ops(&omap_pm_ops); |
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index aa6fd98f606e..ea62e75ef21d 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c | |||
| @@ -77,10 +77,20 @@ static int omap4_pm_suspend(void) | |||
| 77 | omap_set_pwrdm_state(pwrst->pwrdm, pwrst->saved_state); | 77 | omap_set_pwrdm_state(pwrst->pwrdm, pwrst->saved_state); |
| 78 | pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->saved_logic_state); | 78 | pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->saved_logic_state); |
| 79 | } | 79 | } |
| 80 | if (ret) | 80 | if (ret) { |
| 81 | pr_crit("Could not enter target state in pm_suspend\n"); | 81 | pr_crit("Could not enter target state in pm_suspend\n"); |
| 82 | else | 82 | /* |
| 83 | * OMAP4 chip PM currently works only with certain (newer) | ||
| 84 | * versions of bootloaders. This is due to missing code in the | ||
| 85 | * kernel to properly reset and initialize some devices. | ||
| 86 | * Warn the user about the bootloader version being one of the | ||
| 87 | * possible causes. | ||
| 88 | * http://www.spinics.net/lists/arm-kernel/msg218641.html | ||
| 89 | */ | ||
| 90 | pr_warn("A possible cause could be an old bootloader - try u-boot >= v2012.07\n"); | ||
| 91 | } else { | ||
| 83 | pr_info("Successfully put all powerdomains to target state\n"); | 92 | pr_info("Successfully put all powerdomains to target state\n"); |
| 93 | } | ||
| 84 | 94 | ||
| 85 | return 0; | 95 | return 0; |
| 86 | } | 96 | } |
| @@ -146,6 +156,13 @@ int __init omap4_pm_init(void) | |||
| 146 | } | 156 | } |
| 147 | 157 | ||
| 148 | pr_err("Power Management for TI OMAP4.\n"); | 158 | pr_err("Power Management for TI OMAP4.\n"); |
| 159 | /* | ||
| 160 | * OMAP4 chip PM currently works only with certain (newer) | ||
| 161 | * versions of bootloaders. This is due to missing code in the | ||
| 162 | * kernel to properly reset and initialize some devices. | ||
| 163 | * http://www.spinics.net/lists/arm-kernel/msg218641.html | ||
| 164 | */ | ||
| 165 | pr_warn("OMAP4 PM: u-boot >= v2012.07 is required for full PM support\n"); | ||
| 149 | 166 | ||
| 150 | ret = pwrdm_for_each(pwrdms_setup, NULL); | 167 | ret = pwrdm_for_each(pwrdms_setup, NULL); |
| 151 | if (ret) { | 168 | if (ret) { |
