diff options
| author | Paul Walmsley <paul@pwsan.com> | 2013-02-10 11:27:02 -0700 | 
|---|---|---|
| committer | Paul Walmsley <paul@pwsan.com> | 2013-02-10 11:27:02 -0700 | 
| commit | a5a8c31d9f7587b601ecf0106c8abeabe3da24c3 (patch) | |
| tree | 9de75a8020d78fc210f82451414bc0a09f6fa228 | |
| parent | 5cebb23c6cbcfcae1d0586d07898677716f133bc (diff) | |
| parent | cd19010c03cc9cce2366d5065720a3ab546833dd (diff) | |
| download | olio-linux-3.10-a5a8c31d9f7587b601ecf0106c8abeabe3da24c3.tar.xz olio-linux-3.10-a5a8c31d9f7587b601ecf0106c8abeabe3da24c3.zip  | |
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 f4b3143a8b1..1ec429964b7 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)  	 * a completely different mechanism.  	 * Disable this part if a DT blob is available.  	 */ -	if (of_have_populated_dt()) -		return 0; +	if (!of_have_populated_dt()) { -	/* Init the voltage layer */ -	omap_pmic_late_init(); -	omap_voltage_late_init(); +		/* Init the voltage layer */ +		omap_pmic_late_init(); +		omap_voltage_late_init(); -	/* Initialize the voltages */ -	omap3_init_voltages(); -	omap4_init_voltages(); +		/* Initialize the voltages */ +		omap3_init_voltages(); +		omap4_init_voltages(); -	/* Smartreflex device init */ -	omap_devinit_smartreflex(); +		/* Smartreflex device init */ +		omap_devinit_smartreflex(); +	}  #ifdef CONFIG_SUSPEND  	suspend_set_ops(&omap_pm_ops); diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index aa6fd98f606..ea62e75ef21 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)  		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"); -	else +		/* +		 * 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"); +	}  	return 0;  } @@ -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("OMAP4 PM: u-boot >= v2012.07 is required for full PM support\n");  	ret = pwrdm_for_each(pwrdms_setup, NULL);  	if (ret) {  |