aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2013-02-10 13:27:02 -0500
committerPaul Walmsley <paul@pwsan.com>2013-02-10 13:27:02 -0500
commita5a8c31d9f7587b601ecf0106c8abeabe3da24c3 (patch)
tree9de75a8020d78fc210f82451414bc0a09f6fa228 /arch/arm/mach-omap2
parent5cebb23c6cbcfcae1d0586d07898677716f133bc (diff)
parentcd19010c03cc9cce2366d5065720a3ab546833dd (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.c20
-rw-r--r--arch/arm/mach-omap2/pm44xx.c21
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) {