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 /arch/arm/mach-omap2 | |
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
Diffstat (limited to 'arch/arm/mach-omap2')
-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) { |